2011-04-08 50 views
1

請諮詢如何限制用戶對mssql的訪問權限:僅連接並執行特定功能列表或存儲過程。問題是默認的'公共'角色給予比需要更多的權限 - 列出數據庫,獲取用戶列表等。 如何關閉儘可能多的possile(拒絕全部),然後打開只允許什麼?如何限制用戶訪問:只有連接和執行功能

真實情況如下:合作伙伴網站要求不通過xml webservice獲取數據,但直接連接到mssql,我打算爲它們或帶參數的存儲過程創建表函數,但希望隱藏所有內容在服務器內部進行。

謝謝。

回答

2

您可以拒絕他們不需要的權限。例如,您可以使用DENY VIEW ANY DATABASE,以便它們不能看到服務器上的其他數據庫。通過DENY工具有很多選項可供選擇(如此多以至於在服務器級別適用的頁面以及適用於database level的頁面)。


剛:

DENY VIEW ANY DATABASE to <user> --Run in master 

DENY VIEW DEFINTION to <user> -- run in the database you've given them connect permission 

應該是足夠的,他們什麼都看不到,或者從任何表中選擇。那麼你只需要明確授予他們你想要的權限。

+0

當我檢查'sp_helprotect null,'public'' - 我希望關閉所有可用的操作時,是否設置限制的正確方法?或者當我可以拒絕所有人並准許我需要的時候,還有其他簡單的方法嗎? – revoua 2011-04-08 07:07:34