簡體   English   中英

如何從C#鎖定DB文件,以便第三方軟件無法訪問它們

[英]How to lock DB files from C# so that 3rd party softwares can't access them

我的要求是“鎖定我們的數據庫文件的方式是允許從我們的應用程序進程中采取的所有操作,只有第三方應用程序/服務訪問被阻止。” 為了確保在我們的應用程序運行后第三方軟件不會鎖定任何數據庫文件,我們應該顯式鎖定所有數據庫文件以防止這種情況。

背景:我正在使用桌面應用程序和sql ce作為數據庫和N-hibernate。 有時我們的應用程序運行第三方軟件,例如備份軟件,它們會頻繁運行並在那時進行系統備份,它將鎖定我們的db文件。

所以我對啟動我的應用程序的要求我應該鎖定我的數據庫文件,使得我的應用程序中的任何線程或任何操作都應該對數據庫中的所有操作進行處理,但應限制第三方操作。

我嘗試使用FileLock的示例,但是在通過N-hibernated執行某些數據庫操作時,我的應用程序失敗了。 請幫助我,這是真的可以實現,如果是這樣,請告訴我。

使用File.Open進行寫操作而不進行處理通常會鎖定文件。 其他人將無法寫,但他們仍然可以閱讀。

創建一個新帳戶/用戶。 僅對此用戶覆蓋文件權限。 並將您的應用程序模擬為此新創建的用戶。 因此,其他用戶無法使用您的文件。

我不知道SQLCE何時開始支持桌面應用程序。 我更喜歡使用SQLite 它原生支持僅使用sqlite提供程序鎖定數據庫文件。 檢查出。 如果您需要更多詳細信息,請與我們聯系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM