可用性グループの権限の取り消し (Transact-SQL)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance

Always On 可用性グループに対する権限を取り消します。

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 で許可されている権限を CASCADE で取り消すと、その権限の 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 AVAILABILITY GROUP 権限が必要です。

A. 可用性グループの VIEW DEFINITION 権限を取り消す

次の例では、可用性グループ MyAgVIEW DEFINITION 権限を、SQL Server ログイン ZArifin に対して取り消します。

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

B. CASCADE を指定して TAKE OWNERSHIP 権限を取り消す

次の例では、可用性グループ MyAgTAKE OWNERSHIP 権限を、PKomosinski によって MyAg での TAKE OWNERSHIP 権限が許可されたすべてのプリンシパルから、SQL Server ユーザー PKomosinski に対して取り消します。

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

C. 以前に許可した WITH GRANT OPTION 句を取り消す

WITH GRANT OPTION を使用して権限が許可されていた場合、その WITH GRANT OPTION を取り消すには REVOKE GRANT OPTION FOR を使用します。 次の例では、権限を許可し、その権限の 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)
Always On 可用性グループ カタログ ビュー (Transact-SQL)
権限 (データベース エンジン)
プリンシパル (データベース エンジン)