共用方式為


撤銷可用性群組權限 (Transact-SQL)

撤銷 AlwaysOn 可用性群組的權限。

適用於:SQL Server (SQL Server 2012 至目前版本)。

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

語法

REVOKE [ GRANT OPTION FOR ] permission  [ ,...n ] 
    ON AVAILABILITY GROUP :: availability_group_name
    { 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
    指定可以撤銷的可用性群組權限。 如需權限清單,請參閱這個主題稍後的<備註>一節。

  • ON AVAILABILITY GROUP ::availability_group_name
    指定要撤銷其權限的可用性群組。 需要範圍限定詞 (
    ::
    )。

  • { FROM | TO } <server_principal>
    指定要撤銷其權限的 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 登入,執行這項查詢的主體會從這項登入衍生其權限來撤銷權限。

備註

只有在目前資料庫是 master 的情況下,才能夠撤銷伺服器範圍的權限。

可以在 sys.availability_groups (Transact-SQL) 目錄檢視中看到有關可用性群組的資訊。 您可以在 sys.server_permissions 目錄檢視中,看到有關伺服器權限的資訊,且可以在 sys.server_principals 目錄檢視中,看到有關伺服器主體的資訊。

可用性群組是伺服器層級的安全性實體。 下表所列的是可以撤銷之最特定且最有限的可用性群組權限,並列出利用隱含方式來併入這些權限的較通用權限。

可用性群組權限

可用性群組權限所隱含

伺服器權限所隱含

ALTER

CONTROL

ALTER ANY AVAILABILITY GROUP

CONNECT

CONTROL

CONTROL SERVER

CONTROL

CONTROL

CONTROL SERVER

TAKE OWNERSHIP

CONTROL

CONTROL SERVER

VIEW DEFINITION

CONTROL

VIEW ANY DEFINITION

權限

需要可用性群組的 CONTROL 權限或伺服器的 ALTER ANY AVAILABILTIY GROUP 權限。

範例

A.撤銷可用性群組的 VIEW DEFINITION 權限

下列範例會撤銷 SQL Server 登入 ZArifin 之可用性群組 MyAg 的 VIEW DEFINITION 權限。

USE master;
REVOKE VIEW DEFINITION ON AVAILABILITY GROUP::MyAg TO ZArifin;
GO

B.撤銷具有 CASCADE 的 TAKE OWNERSHIP 權限

下列範例會撤銷 SQL Server 使用者 PKomosinski 之可用性群組 MyAg 的 TAKE OWNERSHIP 權限,並從 PKomosinski 對其授與 MyAg 之 TAKE OWNERSHIP 的所有主體撤銷該權限。

USE master;
REVOKE TAKE OWNERSHIP ON AVAILABILITY GROUP::MyAg TO PKomosinski 
    CASCADE;
GO

C.撤銷先前授與的 WITH GRANT OPTION 子句

如果使用 WITH GRANT OPTION 授與權限,使用 REVOKE GRANT OPTION FOR … 可移除 WITH GRANT OPTION。 下列範例會授與權限,然後移除權限的 WITH GRANT 部分。

USE master;
GRANT CONTROL ON AVAILABILITY GROUP::MyAg TO PKomosinski 
    WITH GRANT OPTION;
GO
REVOKE GRANT OPTION FOR CONTROL ON AVAILABILITY GROUP::MyAg TO PKomosinski
CASCADE
GO

請參閱

參考

授與可用性群組權限 (Transact-SQL)

拒絕可用性群組權限 (Transact-SQL)

CREATE AVAILABILITY GROUP (Transact-SQL)

sys.availability_groups (Transact-SQL)

概念

權限 (Database Engine)

主體 (Database Engine)

其他資源

AlwaysOn 可用性群組目錄檢視 (Transact-SQL)