删除服务器级 GRANT 和 DENY 权限。
语法
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 
 指示要撤消向其他主体授予指定权限的权限。不会撤消该权限本身。.gif) 重要提示: 重要提示:- 如果主体具有不带 GRANT 选项的指定权限,则将撤消该权限本身。 
- CASCADE 
 指示要撤消的权限也会从此主体授予或拒绝该权限的其他主体中撤消。.gif) 注意: 注意:- 如果对授予了 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 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 权限,但是不能将该权限再授予其他主体。
请参阅
参考
GRANT (Transact-SQL)
DENY (Transact-SQL)
DENY 服务器权限 (Transact-SQL)
REVOKE 服务器权限 (Transact-SQL)
.gif)