REVOKE 伺服器權限 (Transact-SQL)

移除伺服器層級 GRANT 和 DENY 權限。

主題連結圖示Transact-SQL 語法慣例

語法

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
    指出會撤銷對其他主體授與指定權限的權限。不會撤銷權限本身。

    重要事項重要事項

    如果主體有不含 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 登入。

備註

只有在目前資料庫是 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 ANY SERVER AUDIT

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 權限,但它無法再對其他主體授與該權限。