拒绝为 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
指定要拒绝权限的服务器角色。 需要使用作用域限定符 (::)。
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 目录视图中获取服务器主体的相关信息。
DENY如果没有指定 CASCADE,且拒绝对已通过 GRANT OPTION 授权的委托人许可,则该语句将失败。
SQL Server 登录名和服务器角色是服务器级安全对象。 下表列出了可为 SQL Server 登录名或服务器角色拒绝的最具体的限定权限,以及隐含这些权限的更一般的权限。
| SQL Server 登录名或服务器角色权限 | SQL Server 登录名或服务器角色权限隐含的权限 | 服务器权限隐含的权限 |
|---|---|---|
| CONTROL | CONTROL | 控制服务器 |
| IMPERSONATE | CONTROL | 控制服务器 |
| VIEW 定义 | CONTROL | VIEW 任何定义 |
| ALTER | CONTROL | 更改任意 LOGIN 更改任意 SERVER ROLE |
权限
登录时,需要登录时的CONTROL权限,或者服务器上的ALTER任何 LOGIN 权限。
对于服务器角色,需要对服务器角色使用CONTROL权限,或者在服务器上更改任何 SERVER ROLE 权限。
示例
A. 拒绝登录名的 IMPERSONATE 权限
以下示例对通过 Windows 用户 IMPERSONATE 创建的 SQL Server 登录名拒绝对 SQL Server 登录名 WanidaBenshoof 的 AdvWorks\YoonM 权限。
USE master;
DENY IMPERSONATE ON LOGIN::WanidaBenshoof TO [AdvWorks\YoonM];
GO
B. 拒绝 VIEW 使用CASCADE的DEFINITION许可
以下示例拒绝 SQL Server 登录名 VIEW DEFINITION 对 SQL Server 登录名 EricKurjan 的 RMeyyappan 权限。
CASCADE 选项指示还会拒绝 VIEW DEFINITION 授予 EricKurjan 权限的主体对 RMeyyappan 的该权限。
USE master;
DENY VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan
CASCADE;
GO
C. 拒绝 VIEW 服务器角色的DEFINITION权限
以下示例拒绝 VIEW DEFINITION 和 Sales 服务器角色的 Auditors 权限。
USE master;
DENY VIEW DEFINITION ON SERVER ROLE::Sales TO Auditors ;
GO
另请参阅
sys.server_principals(Transact-SQL)
sys.server_permissions(Transact-SQL)
GRANT 服务器主体权限(Transact-SQL)
REVOKE 服务器主体权限(Transact-SQL)
CREATE LOGIN (Transact-SQL)
主体(数据库引擎)
权限(数据库引擎)
安全函数 (Transact-SQL)
安全存储过程 (Transact-SQL)