REVOKE (Transact-SQL)

撤消以前授予或拒绝的权限。

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

语法

Simplified syntax for REVOKE
REVOKE [ GRANT OPTION FOR ]
      { 
        [ ALL [ PRIVILEGES ] ]
        |
                permission [ ( column [ ,...n ] ) ] [ ,...n ]
      }
      [ ON [ class :: ] securable ] 
      { TO | FROM } principal [ ,...n ] 
      [ CASCADE] [ AS principal ]

参数

  • GRANT OPTION FOR
    指示将撤消授予指定权限的能力。 在使用 CASCADE 参数时,需要具备该功能。

    重要说明重要提示

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

  • ALL
    该选项并不撤消全部可能的权限。 撤消 ALL 相当于撤消以下权限。

    • 如果安全对象是数据库,则 ALL 对应 BACKUP DATABASE、BACKUP LOG、CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE 和 CREATE VIEW。

    • 如果安全对象是标量函数,则 ALL 对应 EXECUTE 和 REFERENCES。

    • 如果安全对象是表值函数,则 ALL 对应 DELETE、INSERT、REFERENCES、SELECT 和 UPDATE。

    • 如果安全对象是存储过程,则 ALL 表示 EXECUTE。

    • 如果安全对象是表,则 ALL 对应 DELETE、INSERT、REFERENCES、SELECT 和 UPDATE。

    • 如果安全对象是视图,则 ALL 对应 DELETE、INSERT、REFERENCES、SELECT 和 UPDATE。

    注意注意

    不推荐使用 REVOKE ALL 语法。 后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。应改为撤销特定权限。

  • PRIVILEGES
    包含此参数是为了符合 ISO 标准。 请不要更改 ALL 的行为。

  • permission
    权限的名称。 本主题后面的特定于安全对象的语法部分所列出的主题介绍了权限和安全对象之间的有效映射。

  • column
    指定表中将撤消其权限的列的名称。 需要使用括号。

  • class
    指定将撤消其权限的安全对象的类。 需要使用作用域限定符 ::

  • securable
    指定将撤消其权限的安全对象。

  • TO | FROM principal
    主体的名称。 可撤消其对安全对象的权限的主体随安全对象而异。 有关有效组合的详细信息,请参阅本主题后面的特定于安全对象的语法部分所列出的主题。

  • CASCADE
    指示当前正在撤消的权限也将从其他被该主体授权的主体中撤消。 使用 CASCADE 参数时,还必须同时指定 GRANT OPTION FOR 参数。

    注意事项注意

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

  • 作为 principal
    指定一个主体,执行此查询的主体从该主体派生撤消该权限的权限。

注释

REVOKE 语句的完整语法非常复杂。 上面的语法关系图进行了简化以突出其结构。 本主题后面的特定于安全对象的语法部分中列出的主题介绍了用于撤消特定安全对象的权限的完整语句。

REVOKE 语句可用于删除已授予的权限,DENY 语句可用于防止主体通过 GRANT 获得特定权限。

授予权限将删除对所指定安全对象的相应权限的 DENY 或 REVOKE 权限。 如果在包含该安全对象的更高级别拒绝了相同的权限,则 DENY 优先。 但是,在更高级别撤消已授予权限的操作并不优先。

注意事项注意

表级 DENY 并不优先于列级 GRANT。 保留了权限层次结构中的这种不一致性以保持向后兼容。 未来的版本会将其删除。

sp_helprotect 系统存储过程报告数据库级安全对象的权限。

在撤消通过指定 GRANT OPTION 为其赋予权限的主体的权限时,如果未指定 CASCADE,则将无法成功执行 REVOKE 语句。

权限

对安全对象具有 CONTROL 权限的主体可以撤消该安全对象的权限。 对象所有者可以撤消他们所拥有的对象的权限。

被授予 CONTROL SERVER 权限的用户(例如 sysadmin 固定服务器角色的成员)可以撤消针对服务器中的任何安全对象的任何权限。 被授予 CONTROL 权限的用户(例如 db_owner 固定数据库角色的成员)可以撤消针对数据库中的任何安全对象的任何权限。 被授予架构的 CONTROL 权限的用户可以撤消针对该架构的任何对象的任何权限。

特定于安全对象的语法

下表列出了安全对象以及描述特定于安全对象的语法的主题。

安全对象

主题

应用程序角色

REVOKE 数据库主体权限 (Transact-SQL)

程序集

REVOKE 程序集权限 (Transact-SQL)

非对称密钥

REVOKE 非对称密钥权限 (Transact-SQL)

可用性组

REVOKE 可用性组权限 (Transact-SQL)

证书

REVOKE 证书权限 (Transact-SQL)

约定

REVOKE Service Broker 权限 (Transact-SQL)

数据库

REVOKE 数据库权限 (Transact-SQL)

端点

REVOKE 端点权限 (Transact-SQL)

全文目录

REVOKE 全文权限 (Transact-SQL)

全文非索引字表

REVOKE 全文权限 (Transact-SQL)

函数

REVOKE 对象权限 (Transact-SQL)

登录

撤消服务器主体权限 (Transact-SQL)

消息类型

REVOKE Service Broker 权限 (Transact-SQL)

对象

REVOKE 对象权限 (Transact-SQL)

队列

REVOKE 对象权限 (Transact-SQL)

远程服务绑定

REVOKE Service Broker 权限 (Transact-SQL)

角色

REVOKE 数据库主体权限 (Transact-SQL)

路由

REVOKE Service Broker 权限 (Transact-SQL)

架构

REVOKE 架构权限 (Transact-SQL)

搜索属性列表

撤消搜索属性列表权限 (Transact-SQL)

服务器

REVOKE 服务器权限 (Transact-SQL)

服务

REVOKE Service Broker 权限 (Transact-SQL)

存储过程

REVOKE 对象权限 (Transact-SQL)

对称密钥

REVOKE 对称密钥权限 (Transact-SQL)

同义词

REVOKE 对象权限 (Transact-SQL)

系统对象

REVOKE 系统对象权限 (Transact-SQL)

REVOKE 对象权限 (Transact-SQL)

类型

REVOKE 类型权限 (Transact-SQL)

用户

REVOKE 数据库主体权限 (Transact-SQL)

视图

REVOKE 对象权限 (Transact-SQL)

XML 架构集合

REVOKE XML 架构集合权限 (Transact-SQL)

请参阅

参考

DENY (Transact-SQL)

GRANT (Transact-SQL)

sp_addlogin (Transact-SQL)

sp_adduser (Transact-SQL)

sp_changedbowner (Transact-SQL)

sp_dropuser (Transact-SQL)

sp_helprotect (Transact-SQL)

sp_helpuser (Transact-SQL)

概念

权限层次结构(数据库引擎)