
我剛剛為 SQL Server 使用者設定了對單一表的存取權限。我透過賦予使用者 db_datareader 角色來做到這一點。然後,我透過設定每個表的 DENY 列中的所有核取方塊來設定我不希望該使用者存取的所有表的權限。
這確實有效,但需要點擊很多框。
有沒有更短、更簡單的方法來做到這一點?
答案1
是的!你完全搞反了。將使用者從 datareader 角色中刪除(如您所發現的,該角色授予對整個資料庫的 select 權限),並僅授予對該表的 select 存取權限。
USE MyDB
GRANT SELECT ON dbo.MyTable to JoeUser
或者,在 SQL Server Management Studio 中
- 右鍵單擊表並獲取屬性
- 點擊左側選單中的權限
- 點擊“搜尋”並找到您的用戶
- 勾選顯示「選擇」的行中的「授予」列