REVOKE 数据库权限(Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics分析平台系统(PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库Microsoft Fabric 中的 SQL 数据库

撤消对数据库授予和拒绝的权限。

Transact-SQL 语法约定

Syntax

REVOKE [ GRANT OPTION FOR ] <permission> [ ,...n ]    
    { TO | FROM } <database_principal> [ ,...n ]   
        [ CASCADE ]  
    [ AS <database_principal> ]  
  
<permission> ::=    
permission | ALL [ PRIVILEGES ]  
  
<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    

Arguments

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

ALL
该选项不会撤消所有可能的权限。 撤销 ALL 等同于撤销以下权限:BACKUP、LOG、CREATE DATABASE、CREATE DEFAULT、 CREATE VIEWCREATE PROCEDURECREATE TABLECREATE FUNCTIONCREATE RULE和 。 BACKUPDATABASE

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

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

Important

如果负责人获得了指定的许可但没有选项 GRANT ,该许可本身将被撤销。

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

Caution

对授予WITH GRANT OPTION许可的连锁撤销将会撤销该许可的两者GRANTDENY。

AS <database_principal> 指定一个主体,执行此查询的主体从该主体获得撤销该权限的权利。

Database_user
指定数据库用户。

Database_role
指定数据库角色。

Application_role
适用于:SQL Server 2008 (10.0.x) 及更高版本、SQL 数据库

指定应用程序角色。

Database_user_mapped_to_Windows_User
适用于:SQL Server 2008 (10.0.x) 及更高版本

指定映射到 Windows 用户的数据库用户。

Database_user_mapped_to_Windows_Group
适用于:SQL Server 2008 (10.0.x) 及更高版本

指定映射到 Windows 组的数据库用户。

Database_user_mapped_to_certificate
适用于:SQL Server 2008 (10.0.x) 及更高版本

指定映射到证书的数据库用户。

Database_user_mapped_to_asymmetric_key
适用于:SQL Server 2008 (10.0.x) 及更高版本

指定映射到非对称密钥的数据库用户。

Database_user_with_no_login
指定无相应服务器级主体的数据库用户。

Remarks

如果你在撤销授权 GRANT 对象且指定了OPTION的主体权限时,没有指定CASCADE,则该声明将失败。

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

数据库权限 数据库权限隐含的权限 服务器权限隐含的权限
管理 DATABASE 批量操作
适用对象:SQL 数据库。
CONTROL 控制服务器
ALTER CONTROL 更改任意 DATABASE
更改任意 APPLICATION ROLE ALTER 控制服务器
更改任意 ASSEMBLY ALTER 控制服务器
更改任意 ASYMMETRIC KEY ALTER 控制服务器
更改任意 CERTIFICATE ALTER 控制服务器
更改任意 COLUMN ENCRYPTION KEY ALTER 控制服务器
改变任何 COLUMN MASTER KEY 定义 ALTER 控制服务器
更改任意 CONTRACT ALTER 控制服务器
更改任何 DATABASE 审计 ALTER 更改任意 SERVER AUDIT
修改任何 DATABASE DDL TRIGGER ALTER 控制服务器
改变任何 DATABASEEVENT NOTIFICATION ALTER 更改任意 EVENT NOTIFICATION
改变任何 DATABASEEVENT SESSION
适用于: Azure SQL 数据库。
ALTER 更改任意 EVENT SESSION
更改任意 DATABASE SCOPED CONFIGURATION
适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。
CONTROL 控制服务器
更改任何数据空间 ALTER 控制服务器
更改任意 EXTERNAL DATA SOURCE ALTER 控制服务器
更改任意 EXTERNAL FILE FORMAT ALTER 控制服务器
更改任意 EXTERNAL LIBRARY
适用于: SQL Server 2017 (14.x)。
CONTROL 控制服务器
更改任意 FULLTEXT CATALOG ALTER 控制服务器
更改任意掩码 CONTROL 控制服务器
更改任意 MESSAGE TYPE ALTER 控制服务器
更改任意 REMOTE SERVICE BINDING ALTER 控制服务器
更改任意 ROLE ALTER 控制服务器
更改任意 ROUTE ALTER 控制服务器
更改任意 SCHEMA ALTER 控制服务器
更改任意 SECURITY POLICY
适用于: Azure SQL 数据库。
CONTROL 控制服务器
更改任意 SERVICE ALTER 控制服务器
更改任意 SYMMETRIC KEY ALTER 控制服务器
更改任意 USER ALTER 控制服务器
AUTHENTICATE CONTROL 身份验证服务器
BACKUP DATABASE CONTROL 控制服务器
BACKUP 日志 CONTROL 控制服务器
CHECKPOINT CONTROL 控制服务器
CONNECT 连接复制 控制服务器
连接复制 CONTROL 控制服务器
CONTROL CONTROL 控制服务器
CREATE AGGREGATE ALTER 控制服务器
CREATE ASSEMBLY 更改任意 ASSEMBLY 控制服务器
CREATE ASYMMETRIC KEY 更改任意 ASYMMETRIC KEY 控制服务器
CREATE CERTIFICATE 更改任意 CERTIFICATE 控制服务器
CREATE CONTRACT 更改任意 CONTRACT 控制服务器
CREATE DATABASE CONTROL 创造任何一个 DATABASE
CREATE DATABASE DDL EVENT NOTIFICATION 改变任何 DATABASEEVENT NOTIFICATION 创建DDL EVENT NOTIFICATION
CREATE DEFAULT ALTER 控制服务器
CREATE FULLTEXT CATALOG 更改任意 FULLTEXT CATALOG 控制服务器
CREATE FUNCTION ALTER 控制服务器
CREATE MESSAGE TYPE 更改任意 MESSAGE TYPE 控制服务器
CREATE PROCEDURE ALTER 控制服务器
CREATE QUEUE ALTER 控制服务器
CREATE REMOTE SERVICE BINDING 更改任意 REMOTE SERVICE BINDING 控制服务器
CREATE ROLE 更改任意 ROLE 控制服务器
CREATE ROUTE 更改任意 ROUTE 控制服务器
CREATE RULE ALTER 控制服务器
CREATE SCHEMA 更改任意 SCHEMA 控制服务器
CREATE SERVICE 更改任意 SERVICE 控制服务器
CREATE SYMMETRIC KEY 更改任意 SYMMETRIC KEY 控制服务器
CREATE SYNONYM ALTER 控制服务器
CREATE TABLE ALTER 控制服务器
CREATE TYPE ALTER 控制服务器
CREATE VIEW ALTER 控制服务器
CREATE XML SCHEMA COLLECTION ALTER 控制服务器
DELETE CONTROL 控制服务器
EXECUTE CONTROL 控制服务器
执行任何外部脚本
适用于: SQL Server 2016 (13.x)。
CONTROL 控制服务器
INSERT CONTROL 控制服务器
杀戮 DATABASE 连接
适用于: Azure SQL 数据库。
CONTROL 更改任何连接
REFERENCES CONTROL 控制服务器
SELECT CONTROL 控制服务器
SHOWPLAN CONTROL ALTER 追踪
订阅查询通知 CONTROL 控制服务器
接管所有权 CONTROL 控制服务器
UNMASK CONTROL 控制服务器
UPDATE CONTROL 控制服务器
VIEW 任何 COLUMN ENCRYPTION KEY 定义 CONTROL VIEW 任何定义
VIEW 任何 COLUMN MASTER KEY 定义 CONTROL VIEW 任何定义
VIEW DATABASE 状态 CONTROL VIEW 服务器状态
VIEW 定义 CONTROL VIEW 任何定义

Permissions

执行此语句的主体(或用 AS 选项指定的主体)必须具有对数据库的 CONTROL 权限,或具有隐含对数据库的 CONTROL 权限的更高权限。

若要使用 AS 选项,则指定的主体必须拥有数据库。

Examples

A. 撤消创建证书的权限

以下示例从用户 CREATE CERTIFICATE 中撤消对 AdventureWorks2025 数据库的 MelanieK 权限。

适用于:SQL Server 2008 (10.0.x) 及更高版本

USE AdventureWorks2022;  
REVOKE CREATE CERTIFICATE FROM MelanieK;  
GO  

B. 从应用程序角色中撤消 REFERENCES 权限

以下示例从应用程序角色 REFERENCES 中撤消对 AdventureWorks2025 数据库的 AuditMonitor 权限。

适用于:SQL Server 2008 (10.0.x) 及更高版本、SQL 数据库

USE AdventureWorks2022;  
REVOKE REFERENCES FROM AuditMonitor;  
GO  

C. 用级联撤销 VIEW 定义

以下示例从用户 VIEW DEFINITION 以及 AdventureWorks2025 已授予 CarmineEs 权限的所有主体中撤消对 CarmineEs 数据库的 VIEW DEFINITION 权限。

USE AdventureWorks2022;  
REVOKE VIEW DEFINITION FROM CarmineEs CASCADE;  
GO  

另请参阅

sys.database_permissions(Transact-SQL)
sys.database_principals(Transact-SQL)
GRANT 数据库权限(Transact-SQL)
DENY 数据库权限(Transact-SQL)
权限(数据库引擎)
主体(数据库引擎)