REVOKE 对象权限 (Transact-SQL)

撤消对表、视图、表值函数、存储过程、扩展存储过程、标量函数、聚合函数、服务队列或同义词的权限。

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

语法

REVOKE [ GRANT OPTION FOR ] <permission> [ ,...n ] ON 
    [ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]
        { FROM | TO } <database_principal> [ ,...n ] 
    [ CASCADE ]
    [ AS <database_principal> ]

<permission> ::=
    ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]

<database_principal> ::= 
        Database_user 
    | Database_role 
    | Application_role 
    | Database_user_mapped_to_Windows_User 
    | Database_user_mapped_to_Windows_Group 
    | Database_user_mapped_to_certificate 
    | Database_user_mapped_to_asymmetric_key 
    | Database_user_with_no_login    

参数

  • permission
    指定可对架构包含的对象撤消的权限。有关权限的列表,请参阅本主题后面的“备注”部分。
  • ALL
    撤消 ALL 不会撤消所有可能的权限。撤消 ALL 等同于撤消适用于指定对象的所有 ANSI-92 权限。对于不同权限,ALL 的含义有所不同:

    标量函数权限:EXECUTE、REFERENCES。

    表值函数权限:DELETE、INSERT、REFERENCES、SELECT、UPDATE。

    存储过程权限:EXECUTE。

    表权限:DELETE、INSERT、REFERENCES、SELECT、UPDATE。

    视图权限:DELETE、INSERT、REFERENCES、SELECT、UPDATE。

  • PRIVILEGES
    包含此参数以符合 ANSI-92 标准。请不要更改 ALL 的行为。
  • column
    指定表、视图或表值函数中要对其撤消权限的列的名称。需要使用括号 ( )。仅可以拒绝对列的 SELECT、REFERENCES 和 UPDATE 权限。可以在权限子句中或在安全对象名之后指定 column
  • ON [ OBJECT :: ] [ schema_name ] object_name
    指定要对其撤消权限的对象。如果指定了 schema_name,则 OBJECT 短语是可选的。如果使用了 OBJECT 短语,则需要作用域限定符 (::)。如果未指定 schema_name,则使用默认架构。如果指定了 schema_name,则需要架构作用域限定符 (.)。
  • { FROM | TO } <database_principal>
    指定要从中撤消权限的主体。
  • GRANT OPTION
    指示要撤消向其他主体授予指定权限的权限。不会撤消该权限本身。

    ms187719.note(zh-cn,SQL.90).gif重要提示:
    如果主体具有不带 GRANT 选项的指定权限,则将撤消该权限本身。
  • CASCADE
    指示要撤消的权限也会从此主体授予或拒绝该权限的其他主体中撤消。

    ms187719.Caution(zh-cn,SQL.90).gif注意:
    对授予 WITH GRANT OPTION 权限的权限执行级联撤消,将同时撤消该权限的 GRANT 和 DENY 权限。
  • AS <database_principal>
    指定一个主体,执行该查询的主体从该主体获得撤消该权限的权利。
  • Database_user
    指定数据库用户。
  • Database_role
    指定数据库角色。
  • Application_role
    指定应用程序角色。
  • Database_user_mapped_to_Windows_User
    指定映射到 Windows 用户的数据库用户。
  • Database_user_mapped_to_Windows_Group
    指定映射到 Windows 组的数据库用户。
  • Database_user_mapped_to_certificate
    指定映射到证书的数据库用户。
  • Database_user_mapped_to_asymmetric_key
    指定映射到非对称密钥的数据库用户。
  • Database_user_with_no_login
    指定无相应服务器级主体的数据库用户。

备注

可以在各种目录视图中查看对象的有关信息。有关详细信息,请参阅对象目录视图 (Transact-SQL)

对象是一个架构级的安全对象,包含于权限层次结构中作为其父级的架构中。下表列出了可撤消的对对象最为具体的限定权限,以及隐含这些权限的更为通用的权限。

对象权限 对象权限隐含的权限 架构权限隐含的权限

ALTER

CONTROL

ALTER

CONTROL

CONTROL

CONTROL

DELETE

CONTROL

DELETE

EXECUTE

CONTROL

EXECUTE

INSERT

CONTROL

INSERT

RECEIVE

CONTROL

CONTROL

REFERENCES

CONTROL

REFERENCES

SELECT

RECEIVE

SELECT

TAKE OWNERSHIP

CONTROL

CONTROL

UPDATE

CONTROL

UPDATE

VIEW DEFINITION

CONTROL

VIEW DEFINITION

权限

需要对对象的 CONTROL 权限。

如果使用 AS 子句,则指定的主体必须拥有要对其撤消权限的对象。

示例

A. 撤消对表的 SELECT 权限

以下示例从用户 RosaQdM 中撤消对 AdventureWorks 数据库中表 Person.AddressSELECT 权限。

USE AdventureWorks;
REVOKE SELECT ON OBJECT::Person.Address FROM RosaQdM;
GO

B. 撤消对存储过程的 EXECUTE 权限

以下示例从名为 Recruiting11 的应用程序角色中撤消对存储过程 HumanResources.uspUpdateEmployeeHireInfoEXECUTE 权限。

USE AdventureWorks;
REVOKE EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
    FROM Recruiting11;
GO 

C. 使用 CASCADE 撤消对视图的 REFERENCES 权限

以下示例使用 CASCADE,从用户 Wanida 中撤消对视图 HumanResources.vEmployee 中列 EmployeeIDREFERENCES 权限。

USE AdventureWorks;
REVOKE REFERENCES (EmployeeID) ON OBJECT::HumanResources.vEmployee 
    FROM Wanida CASCADE;
GO

请参阅

参考

GRANT 对象权限 (Transact-SQL)
DENY 对象权限 (Transact-SQL)
对象目录视图 (Transact-SQL)

其他资源

权限
主体
安全对象

帮助和信息

获取 SQL Server 2005 帮助