2009-12-17 78 views
0

我正在開發.NET客戶端應用程序通過SQL本機客戶端和連接字符串連接到SQL Server Express 2005的Windows桌面客戶端/服務器應用程序。客戶端然後通過數據庫上的連接直接執行SQL(沒有存儲過程)。適用於Windows桌面客戶端/服務器應用程序的SQL Server安全配置選項

如何配置SQL Server(或Windows)安全性,使得只有我簽名的應用程序二進制文件可以連接到數據庫,而不是其他任何來自客戶機的數據庫? (即不是SQL Server Management Studio Express,我的二進制文件或其他惡意代碼的黑客版本)我需要將密鑰嵌入到我的應用程序中嗎?如果是這樣,那麼如何防止這些反彙編攻擊?

客戶機或服務器機器可以放置在公司域中。使用SQL Server完整版而不是SQL Server Express也是一種選擇。我還想在服務器機器上本地運行SSMSE以進行升級和支持工作(服務器將具有物理門鎖安全性以防止對其進行訪問)。

我的應用程序需要從表中讀取數據來計算摘要信息。摘要信息不需要被保護,但是詳細的單個行就可以。我認爲這個要求不包括任何形式的基於表格的權限結合Windows帳戶或SQL Server用戶名和密碼。

回答

0

位信息的,我會用某種Windows帳戶的用戶名和密碼組合 :-)

除了諷刺以外,你所談論的只是權限。使用您控制的用戶帳戶將您的應用程序連接到SQL服務器,並且不會向用戶提供帳戶憑證。問題解決了。好吧,差不多。

「in」中唯一的另一種方式是使用像Administrator或SA這樣的帳戶,該帳戶具有授予對整個SQL Server的訪問權限的服務器角色,因此您必須確保用戶無權訪問SQL Server通過那條路。這非常簡單 - 在SQL Server中限制Builtin \ Administrators組,例如通過只給予Public而不是sysadmin,禁用SA帳戶(如果服務器具有混合模式驗證),並將控件中的另一個帳戶替換爲充當系統管理員。小心不要把自己鎖在外面:-)。

+0

謝謝。我發現了更多的信息。 Builtin \ Administrators和Builtin \ Users組與可以分別以管理員或用戶身份登錄到計算機的用戶相關。這可能包含很多帳戶。例如,本地PC管理員,域管理員和Builtin \ Users案例中的任何人都有域名登錄。因此,我將不得不小心這些。 – Shane 2010-01-21 04:11:01

0

你想着眼於在SQL Server中使用應用程序角色。我不確定這些表達式的可用性。

這裏有Application Roles

+0

謝謝我還沒有看過。我相信這很有幫助,但我注意到它是從2000年開始的。 – Shane 2010-01-21 04:08:01

相關問題