REVOKE 服务器权限 (Transact-SQL)

删除服务器级 GRANT 和 DENY 权限。

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

语法

REVOKE [ GRANT OPTION FOR ] permission  [ ,...n ] 
    { TO | FROM } <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
    指定可对服务器授予的权限。有关权限的列表,请参阅本主题后面的“备注”部分。

  • { TO | FROM } <grantee_principal>
    指定要从中撤消权限的主体。

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

  • GRANT OPTION FOR
    指示要撤消向其他主体授予指定权限的权限。不会撤消该权限本身。

    重要说明重要提示

    如果主体具有不带 GRANT 选项的指定权限,则将撤消该权限本身。

  • CASCADE
    指示要撤消的权限也会从此主体授予或拒绝该权限的其他主体中撤消。

    注意事项注意

    如果对授予了 WITH GRANT OPTION 权限的权限执行级联撤消,将同时撤消该权限的 GRANT 和 DENY 权限。

  • 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 时,才可撤消其服务器作用域内的权限。

REVOKE 操作可同时删除 GRANT 和 DENY 权限。

使用 REVOKE GRANT OPTION FOR 可以撤消重新授予指定权限的权利。如果主体所具有的权限还带有授予该权限的权利,则将撤消授予该权限的权利,而不会撤消权限本身。但是,如果主体具有不带 GRANT 选项的指定权限,则将撤消权限本身。

可以在 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 权限,或者具有 sysadmin 固定服务器角色的成员身份。

示例

A. 从登录名中撤消权限

以下示例从 SQL Server 登录名 WanidaBenshoof 中撤消 VIEW SERVER STATE 权限。

USE master;
REVOKE VIEW SERVER STATE FROM WanidaBenshoof;
GO

B. 撤消 WITH GRANT 选项

以下示例从 SQL Server 登录名 JanethEsteves 中撤消授予 CONNECT SQL 的权利。

USE master;
REVOKE GRANT OPTION FOR CONNECT SQL FROM JanethEsteves;
GO

该登录名仍然具有 CONNECT SQL 权限,但是不能将该权限再授予其他主体。