REVOKE 服务器主体权限 (Transact-SQL)
撤消对 SQL Server 登录名授予或拒绝的权限。
语法
REVOKE [ GRANT OPTION FOR ] permission [ ,...n ] }
ON LOGIN :: SQL_Server_login
{ FROM | TO } <server_principal> [ ,...n ]
[ CASCADE ]
[ AS SQL_Server_login ]
<server_principal> ::=
SQL_Server_login
| SQL_Server_login_from_Windows_login
| SQL_Server_login_from_certificate
| SQL_Server_login_from_AsymKey
参数
- permission
指定可对 SQL Server 登录名撤消的权限。有关权限的列表,请参阅本主题后面的“备注”部分。
- LOGIN :: SQL_Server_login
指定要对其撤消权限的 SQL Server 登录名。需要作用域限定符 ::。
- { FROM | TO } SQL_Server_login
指定要从中撤消权限的 SQL Server 登录名。
- SQL_Server_login
指定 SQL Server 登录帐户的名称。
- SQL_Server_login_from_Windows_login
指定通过 Windows 登录帐户创建的 SQL Server 登录帐户的名称。
- SQL_Server_login_from_certificate
指定映射到证书的 SQL Server 登录帐户的名称。
- SQL_Server_login_from_AsymKey
指定映射到非对称密钥的 SQL Server 登录帐户的名称。
GRANT OPTION
指示要撤消向其他主体授予指定权限的权限。不会撤消该权限本身。重要提示: 如果主体具有不带 GRANT 选项的指定权限,则将撤消该权限本身。
CASCADE
指示要撤消的权限也会从此主体授予或拒绝该权限的其他主体中撤消。注意: 对授予 WITH GRANT OPTION 权限的权限执行级联撤消,将同时撤消该权限的 GRANT 和 DENY 权限。
- AS SQL_Server_login
指定执行此查询的主体要从哪个 SQL Server 登录名派生其撤消该权限的权限。
备注
SQL Server 登录名为服务器级安全对象。下表列出了可撤消的对 SQL Server 登录名最为具体的限定权限,以及隐含这些权限的更为通用的权限。
SQL Server 登录权限 | SQL Server 登录权限隐含的权限 | 服务器权限隐含的权限 |
---|---|---|
CONTROL |
CONTROL |
CONTROL SERVER |
IMPERSONATE |
CONTROL |
CONTROL SERVER |
VIEW DEFINITION |
CONTROL |
VIEW ANY DEFINITION |
ALTER |
CONTROL |
ALTER ANY LOGIN |
权限
需要对登录的 CONTROL 权限或对服务器的 ALTER ANY LOGIN 权限。
示例
A. 撤消对登录名的 IMPERSONATE 权限
以下示例从通过 Windows 用户 AdvWorks\YoonM
创建的 SQL Server 登录名中撤消对 SQL Server 登录名 WanidaBenshoof
的 IMPERSONATE
权限。
USE master;
REVOKE IMPERSONATE ON LOGIN::WanidaBenshoof FROM [AdvWorks\YoonM];
GO
B. 使用 CASCADE 撤消 VIEW DEFINITION 权限
以下示例从 SQL Server 登录名 RMeyyappan
中撤消对 SQL Server 登录名 EricKurjan
的 VIEW DEFINITION
权限。CASCADE
选项指示还会从 RMeyyappan
授予 VIEW DEFINITION
权限的主体中撤消对 EricKurjan
的该权限。
USE master;
REVOKE VIEW DEFINITION ON LOGIN::EricKurjan FROM RMeyyappan
CASCADE;
GO
请参阅
参考
sys.server_principals (Transact-SQL)
sys.server_permissions (Transact-SQL)
GRANT 服务器主体权限 (Transact-SQL)
DENY 服务器主体权限 (Transact-SQL)
CREATE LOGIN (Transact-SQL)