适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
分析平台系统(PDW)
Microsoft Fabric 中的 SQL 分析终结点
Microsoft Fabric 中的仓库
Microsoft Fabric 中的 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)
权限(数据库引擎)
主体(数据库引擎)