Sql-Server
如何將 SELECT 權限授予屬於顯式拒絕的大型組的個人使用者?
我有一個表 SuperSecretData,它目前設置為通過標準 Active Directory 帳戶“域使用者”拒絕對公司中的每個人進行 SELECT。但是一些特定的個人使用者確實需要能夠從中選擇。實現這一目標的正確方法是什麼?
DENY 會覆蓋 GRANT,繼承的 DENY 甚至會覆蓋直接的 GRANT。架構或數據庫級別的 DENY 會覆蓋對象級別的 GRANT。
因此,您將無法直接覆蓋 DENY。
您可以創建與 SuperSecretData 相同的使用者擁有的視圖、同義詞或儲存過程,並授予他們訪問權限。
除了我只希望某些特定使用者擁有 SELECT 權限的幾個表之外,有沒有更好的方法將我的 SQL 伺服器上的幾乎所有實體 GRANT SELECT 授予“域使用者”?
是的。永遠不要使用內置角色,始終使用模式級授權。然後,您可以創建單獨的模式以提高安全性。例如
grant select on schema::dbo to ...
而不是內置角色
alter role db_datareader add . . .
或數據庫級授權
grant select to ...