DENY 服务器权限 (Transact-SQL)

拒绝对服务器的权限。

主题链接图标Transact-SQL 语法约定

语法

DENY permission [ ,...n ] 
    TO <grantee_principal> [ ,...n ]
    [ CASCADE ]
    [ AS <grantor_principal> ] 

<grantee_principal> ::= SQL_Server_login 
    | SQL_Server_login_mapped_to_Windows_login
    | SQL_Server_login_mapped_to_Windows_group
    | SQL_Server_login_mapped_to_certificate
    | SQL_Server_login_mapped_to_asymmetric_key

<grantor_principal> ::= SQL_Server_login 
    | SQL_Server_login_mapped_to_Windows_login
    | SQL_Server_login_mapped_to_Windows_group
    | SQL_Server_login_mapped_to_certificate
    | SQL_Server_login_mapped_to_asymmetric_key

参数

  • permission
    指定可对服务器拒绝的权限。有关权限的列表,请参阅本主题后面的“备注”部分。

  • CASCADE
    指示要拒绝的权限也会被对此主体授予该权限的其他主体拒绝。

  • TO <server_principal>
    指定对其拒绝权限的主体。

  • AS <grantor_principal>
    指定执行此查询的主体要从哪个主体派生其拒绝该权限的权利。

  • SQL_Server_login
    指定 SQL Server 登录名。

  • SQL_Server_login_mapped_to_Windows_login
    指定映射到 Windows 登录名的 SQL Server 登录名。

  • SQL_Server_login_mapped_to_Windows_group
    指定映射到 Windows 组的 SQL Server 登录名。

  • SQL_Server_login_mapped_to_certificate
    指定映射到证书的 SQL Server 登录名。

  • SQL_Server_login_mapped_to_asymmetric_key
    指定映射到非对称密钥的 SQL Server 登录名。

注释

只有在当前数据库为 master 时,才可拒绝其服务器范围内的权限。

可以在 sys.server_permissions 目录视图中查看服务器权限的有关信息,可以在 sys.server_principals 目录视图中查看服务器主体的有关信息。可以在 sys.server_role_members 目录视图中查看服务器角色的成员身份的有关信息。

服务器是权限层次结构的最高级别。下表列出了可拒绝的对服务器最为具体的限定权限。

服务器权限

服务器权限隐含的权限

ADMINISTER BULK OPERATIONS

CONTROL SERVER

ALTER ANY CONNECTION

CONTROL SERVER

ALTER ANY CREDENTIAL

CONTROL SERVER

ALTER ANY DATABASE

CONTROL SERVER

ALTER ANY ENDPOINT

CONTROL SERVER

ALTER ANY EVENT NOTIFICATION

CONTROL SERVER

ALTER ANY LINKED SERVER

CONTROL SERVER

ALTER ANY LOGIN

CONTROL SERVER

ALTER ANY SERVER AUDIT

CONTROL SERVER

ALTER RESOURCES

CONTROL SERVER

ALTER SERVER STATE

CONTROL SERVER

ALTER SETTINGS

CONTROL SERVER

ALTER TRACE

CONTROL SERVER

AUTHENTICATE SERVER

CONTROL SERVER

CONNECT SQL

CONTROL SERVER

CONTROL SERVER

CONTROL SERVER

CREATE ANY DATABASE

ALTER ANY DATABASE

CREATE DDL EVENT NOTIFICATION

ALTER ANY EVENT NOTIFICATION

CREATE ENDPOINT

ALTER ANY ENDPOINT

CREATE TRACE EVENT NOTIFICATION

ALTER ANY EVENT NOTIFICATION

EXTERNAL ACCESS ASSEMBLY

CONTROL SERVER

SHUTDOWN

CONTROL SERVER

UNSAFE ASSEMBLY

CONTROL SERVER

VIEW ANY DATABASE

VIEW ANY DEFINITION

VIEW ANY DEFINITION

CONTROL SERVER

VIEW SERVER STATE

ALTER SERVER STATE

权限

要求具有 CONTROL SERVER 权限或者安全对象的所有权。如果使用 AS 子句,则指定的主体必须拥有要对其拒绝权限的安全对象。

示例

A. 对 SQL Server 登录名和该登录名重新授予 CONNECT SQL 权限的主体拒绝该权限

以下示例对 SQL Server 登录名 Annika 以及该登录名授予 CONNECT SQL 权限的主体拒绝该权限。

USE master;
DENY CONNECT SQL TO Annika CASCADE;
GO

B. 使用 AS 选项对 SQL Server 登录名拒绝 CREATE ENDPOINT 权限

以下示例对用户 ArifS 拒绝 CREATE ENDPOINT 权限。该示例使用 AS 选项指定 MandarP 作为执行主体从中派生执行权限的主体。

USE master;
DENY CREATE ENDPOINT TO ArifS AS MandarP;
GO

更改历史记录

更新的内容

添加了 ALTER ANY SERVER AUDIT 权限。