REVOKE 伺服器權限 (Transact-SQL)
適用於:SQL Server
Azure SQL 受控執行個體
移除伺服器層級 GRANT 和 DENY 權限。
Syntax
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
| server_role
<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
| server_role
注意
若要檢視 SQL Server 2014 (12.x) 和更早版本的 Transact-SQL 語法,請參閱舊版文件。
引數
permission
指定可以授與的伺服器權限。 如需權限清單,請參閱這個主題稍後的「備註」一節。
{ TO | FROM } <grantee_principal> 指定要撤銷其權限的主體。
AS <grantor_principal> 指定主體,以讓執行這項查詢的主體可從該主體衍生撤銷權限的權利。
GRANT OPTION FOR
指出會撤銷對其他主體授與指定權限的權限。 不會撤銷權限本身。
重要
如果主體有不含 GRANT 選項的指定權限,則會撤銷權限本身。
CASCADE
指出目前正在撤銷的權限,而這個權限也會被這個主體所授與或拒絕的其他主體所撤銷。
警告
獲得授與 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 登入。
server_role
指定使用者定義伺服器角色。
備註
只有在目前資料庫是 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 AVAILABILITY GROUP 適用於:SQL Server (SQL Server 2012 (11.x) 到最新版本)。 |
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 EVENT SESSION | CONTROL SERVER |
ALTER ANY LINKED SERVER | CONTROL SERVER |
ALTER ANY LOGIN | CONTROL SERVER |
ALTER ANY SERVER AUDIT | CONTROL SERVER |
ALTER ANY SERVER ROLE 適用於:SQL Server (SQL Server 2012 (11.x) 到最新版本)。 |
CONTROL SERVER |
ALTER RESOURCES | CONTROL SERVER |
ALTER SERVER STATE | CONTROL SERVER |
ALTER SETTINGS | CONTROL SERVER |
ALTER TRACE | CONTROL SERVER |
AUTHENTICATE SERVER | CONTROL SERVER |
CONNECT ANY DATABASE 適用於:SQL Server (SQL Server 2014 (12.x) 到最新版本)。 |
CONTROL SERVER |
CONNECT SQL | CONTROL SERVER |
CONTROL SERVER | CONTROL SERVER |
CREATE ANY DATABASE | ALTER ANY DATABASE |
CREATE AVAILABILITY GROUP 適用於:SQL Server (SQL Server 2012 (11.x) 到最新版本)。 |
ALTER ANY AVAILABILITY GROUP |
CREATE DDL EVENT NOTIFICATION | ALTER ANY EVENT NOTIFICATION |
CREATE ENDPOINT | ALTER ANY ENDPOINT |
CREATE SERVER ROLE 適用於:SQL Server (SQL Server 2012 (11.x) 到最新版本)。 |
ALTER ANY SERVER ROLE |
CREATE TRACE EVENT NOTIFICATION | ALTER ANY EVENT NOTIFICATION |
EXTERNAL ACCESS ASSEMBLY | CONTROL SERVER |
IMPERSONATE ANY LOGIN 適用於:SQL Server (SQL Server 2014 (12.x) 到最新版本)。 |
CONTROL SERVER |
SELECT ALL USER SECURABLES 適用於:SQL Server (SQL Server 2014 (12.x) 到最新版本)。 |
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)
權限階層 (Database Engine)
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)