Sql-Server
如何授予拒絕 DML 逗號的 AD 組中的使用者在特定表上更新
我的 sql 伺服器中有一個名為 SQLQRY 的 Active Directory 使用者帳戶。SQLQRY 只允許讀取數據。這些使用者可以使用 onyl select 語句。我只需要將特定表的更新和刪除權限授予 SQLQRY AD 帳戶中的幾個開發人員。我怎麼能做到這一點而不將它們從組中提取出來?
我只需要將特定表的更新和刪除權限授予 SQLQRY AD 帳戶中的幾個開發人員。我怎麼能做到這一點而不將它們從組中提取出來?
如果您為所有開發人員使用相同的 AD 使用者,我建議您開始使用 AD 組並將您的開發人員添加到這些組中。有關對多個使用者使用一個 AD 登錄的問答,請參見此處。之後,您可以按照以下步驟操作。
向 AD 組的所有成員授予權限或不授予權限。
如果您想向其中一些使用者授予權限,則必須添加不同的廣告組或單獨添加使用者。
之後,您可以向該組授予更新和刪除權限,或者創建具有該權限的新角色並將組/使用者添加到其中。
範例命令:
USE [master] CREATE LOGIN [SQLQRY_2] FROM WINDOWS WITH DEFAULT_DATABASE=[master] GO USE [DBName] CREATE USER [SQLQRY_2] FOR LOGIN [SQLQRY_2]; CREATE ROLE [NewRole]; GRANT INSERT,UPDATE,DELETE ON dbo.test to [NewRole]; -- table1 -- Table 2,3, ... ALTER ROLE [NewRole] ADD MEMBER [SQLQRY_2];
它們在 SQLQRY AD 帳戶中定義,並且沒有更新和刪除權限。那麼,我的角色會覆蓋我的拒絕規則嗎?
如果您在將數據寫入表時指定了拒絕權限,則授予相應的寫入權限將不起作用。DENY 的優先級高於 grant。