Sql-Server-2005
SQL 2005 權限優先級
非常簡單的問題 - 我有兩個數據庫角色(基本、管理員)。假設我明確拒絕從表 A 中刪除 Basic 角色並將其授予 Admin 角色。如果我是兩個角色的使用者,我可以從表 A 中刪除嗎?
從來沒有一個簡單的答案…
對於直接 DELETE,兩個角色中的使用者將無法在檢查權限時
DELETE DENY 始終具有優先權對於間接通過儲存過程,如果 table 和 proc 具有相同的所有者,則可能*不會檢查權限。*所以 GRANT 和 DENY 都將被忽略。這稱為“所有權連結”
就個人而言,我並沒有真正使用 DENY。原因如下:
在您的情況下,您只需要
GRANT DELETE
Admin 角色。Basic 角色既不需要DENY
也不需要GRANT
(但執行REVOKE DELETE
以刪除 Basic DELETE 權限)
- 缺少 DELETE 權限(通過 REVOKE)意味著僅基本使用者的 DELETE 將失敗。不需要拒絕來防止這種情況。
- 管理員使用者(無論是否具有兩個角色)都具有 GRANT,因此 DELETE 將成功。沒有拒絕阻止他們