我正在使用C#應用程序和連接到數據庫使用SQL Server 2008使用Windows身份驗證。我爲數據庫創建了幾個用戶,但我無法理解如何在應用程序級別使用它們。我的目標是在任何電腦上安裝此應用程序,並在用戶嘗試安裝sql管理工作室時使用戶無法訪問數據庫。SQL Server數據庫安全性在應用程序級別?
有人請解釋或給我任何好的參考,以瞭解我想做什麼?
我正在使用C#應用程序和連接到數據庫使用SQL Server 2008使用Windows身份驗證。我爲數據庫創建了幾個用戶,但我無法理解如何在應用程序級別使用它們。我的目標是在任何電腦上安裝此應用程序,並在用戶嘗試安裝sql管理工作室時使用戶無法訪問數據庫。SQL Server數據庫安全性在應用程序級別?
有人請解釋或給我任何好的參考,以瞭解我想做什麼?
如果你想確保沒有你的應用程序中的用戶不能訪問數據庫,你有幾種選擇:
實施「虛擬用戶」
這意味着你實現自己的用戶管理和不要爲您的應用程序用戶創建真正的數據庫用戶,而只能在您自己的結構中創建「虛擬用戶」......您的應用程序會使用一般應用程序用戶進行數據庫訪問,這對用戶來說是未知的......因爲應用程序用戶不是「重新安裝數據庫用戶,他們無法直接用其用戶/密碼訪問數據庫。
實行「特殊密碼方案」
這意味着你創建真正的用戶......但是隻有你的應用程序可以創建一個應用程序的用戶...創建或更改其密碼的用戶,當你不設置用戶的數據庫密碼,但使用一些計算(例如哈希)來創建不同的密碼,並在數據庫級別設置...您的應用程序知道計算,所以當用戶登錄您的應用程序做計算並使用導致登錄到數據庫......這樣,真正的DB用戶無法直接登錄數據庫,因爲他們知道的密碼(只適用於與您的應用程序一起使用時)不是DB所知道的密碼......
請注意,以上都不是100%安全的,因爲您的.NET應用程序始終可以被反編譯/反向工程等。 - 儘管上述方法足以阻止「普通用戶」直接訪問數據庫...