2010-12-17 113 views
0

我有一個excel應用程序,分發給我公司中與SQL 2005有連接的幾個人。sql 2005訪問控制 - 允許excel連接但不訪問?

有沒有一種方法可以阻止進取的個人在Excel中使用連接字符串(這是明顯可見的)從他們自己的訪問中使用它或其他工具從連接到和使用SQL Server資源的基礎上,他們可以從連接字符串從Excel中拉出的細節?

回答

0

簡短的回答是,如果你透露你的連接字符串和你的源代碼,聰明的用戶會找到一種方法來複制它。沒辦法解決這個問題。但是......

如果您的Excel應用程序使用宏代碼,則始終可以使用SQL應用程序角色。您創建連接對象的代碼立即調用sp_setapprole,它切換連接的安全上下文。給連接字符串中的用戶無權執行任何操作。授予應用角色的有限權利。現在,您只需要找到一種方法來混淆sp_setapprole調用,以便您的智能用戶不知道如何執行此操作。

至少要確保Excel使用的用戶帳戶僅對一組非常有限的對象擁有權限。將所有複雜的SQL放入服務器端的視圖或存儲過程中,以免泄露數據庫模式。

+0

問題是,電子xcel應用程序報告缺陷表,並且我想阻止用戶在Access中或者通過連接到表格並在他們感受到的時候使用數據來滾動他們自己的報告應用程序。 – kacalapy 2010-12-17 18:14:05

+0

如果您成功了,他們只會編寫使用Excel文件作爲數據源的Access報告,但仍然無法使用。如果你不能相信你的員工遵守公司政策,那就放棄吧。 – Bill 2010-12-17 19:46:28

0

如果他們有可用的來源,則不可能隱藏用戶的憑據。

一個可能的解決方案,以防止數據庫被濫用:

  • 分配這些用戶只能訪問一個數據庫角色DB有限的權限(如只讀權限和訪問只能通過使用的對象應用程序)
  • 提供只讀限制行返回的人數次(選擇TOP(X)...)
  • 更新僅通過存儲過程發生
相關問題