DENY 伺服器主體權限 (Transact-SQL)
拒絕授與的 SQL Server 登入權限。
語法
DENY permission [ ,...n ] }
ON
{ [ LOGIN :: SQL_Server_login ]
| [ SERVER ROLE :: server_role ] }
TO <server_principal> [ ,...n ]
[ CASCADE ]
[ AS SQL_Server_login ]
<server_principal> ::=
SQL_Server_login
| SQL_Server_login_from_Windows_login
| SQL_Server_login_from_certificate
| SQL_Server_login_from_AsymKey
| server_role
引數
permission
指定可以拒絕的 SQL Server 登入權限。 如需權限清單,請參閱這個主題稍後的<備註>一節。LOGIN :: SQL_Server_login
指定要拒絕其權限的 SQL Server 登入。 需要範圍限定詞 (::)。SERVER ROLE :: server_role
指定要拒絕其權限的伺服器角色。 需要範圍限定詞 (::)。TO <server_principal>
指定要授與其權限的 SQL Server 登入或伺服器角色。TO SQL_Server_login
指定要拒絕其權限的 SQL Server 登入。SQL_Server_login
指定 SQL Server 登入的名稱。SQL_Server_login_from_Windows_login
指定從 Windows 登入建立的 SQL Server 登入名稱。SQL_Server_login_from_certificate
指定對應至憑證的 SQL Server 登入名稱。SQL_Server_login_from_AsymKey
指定對應至非對稱金鑰的 SQL Server 登入名稱。server_role
指定伺服器角色的名稱。CASCADE
指出目前受到拒絕的權限,也為這個主體曾授與此權限的其他主體所拒絕。AS SQL_Server_login
指定 SQL Server 登入,執行這項查詢的主體會從這項登入衍生其權限來拒絕權限。
備註
只有在目前資料庫是 master 的情況下,才能夠拒絕伺服器範圍的權限。
您可以在 sys.server_permissions 目錄檢視中,檢視有關伺服器權限的資訊。 您可以在 sys.server_principals 目錄檢視中,檢視有關伺服器主體的資訊。
對被授與指定了 GRANT OPTION 之權限的主體拒絕權限時,如果未指定 CASCADE,DENY 陳述式便會失敗。
SQL Server 登入和伺服器角色是伺服器層級安全性實體。 下表所列的是可以拒絕之最特定和最有限的 SQL Server 登入或伺服器角色權限,並列出利用隱含方式來併入這些權限的較通用權限。
SQL Server 登入或伺服器角色權限 |
SQL Server 登入或伺服器角色權限所隱含 |
伺服器權限所隱含 |
---|---|---|
CONTROL |
CONTROL |
CONTROL SERVER |
IMPERSONATE |
CONTROL |
CONTROL SERVER |
VIEW DEFINITION |
CONTROL |
VIEW ANY DEFINITION |
ALTER |
CONTROL |
ALTER ANY LOGIN ALTER ANY SERVER ROLE |
權限
對於登入,需要登入的 CONTROL 權限或伺服器的 ALTER ANY LOGIN 權限。
對於伺服器角色,需要伺服器角色的 CONTROL 權限或伺服器的 ALTER ANY SERVER ROLE 權限。
範例
A.拒絕登入的 IMPERSONATE 權限
下列範例會對 SQL Server 登入拒絕 SQL Server 登入 WanidaBenshoof 的 IMPERSONATE 權限,而這項登入是從 Windows 使用 AdvWorks\YoonM 所建立。
USE master;
DENY IMPERSONATE ON LOGIN::WanidaBenshoof TO [AdvWorks\YoonM];
GO
B.拒絕具有 CASCADE 的 VIEW DEFINITION 權限
下列範例會對 SQL Server 登入 RMeyyappan 拒絕 SQL Server 登入 EricKurjan 的 VIEW DEFINITION 權限。 CASCADE 選項指出也會對 RMeyyappan 對其授與這個權限的主體,拒絕 EricKurjan 的 VIEW DEFINITION 權限。
USE master;
DENY VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan
CASCADE;
GO
C.拒絕伺服器角色的 VIEW DEFINITION 權限
下列範例會對 Auditors 伺服器角色拒絕 Sales 伺服器角色的 VIEW DEFINITION 權限。
USE master;
DENY VIEW DEFINITION ON SERVER ROLE::Sales TO Auditors ;
GO
請參閱
參考
sys.server_principals (Transact-SQL)
sys.server_permissions (Transact-SQL)