REVOKE サーバープリンシパル権限(Transact-SQL)

適用対象:SQL ServerAzure SQL Managed Instance

SQL Server ログインに対して許可または拒否された権限を取り消します。

Transact-SQL 構文表記規則

構文

REVOKE [ GRANT OPTION FOR ] permission [ ,...n ] }   
    ON   
    { [ LOGIN :: SQL_Server_login ]  
      | [ SERVER ROLE :: server_role ] }   
    { 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     
    | server_role  

引数

permission
SQL Server ログインで取り消せる権限を指定します。 権限の一覧については、後の「解説」を参照してください。

LOGIN ::SQL_Server_login
権限を取り消す SQL Server ログインを指定します。 スコープ修飾子 ( :: ) が必要です。

SERVER ROLE ::server_role
権限を取り消すサーバー ロールを指定します。 スコープ修飾子 ( :: ) が必要です。

{ 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 ログインの名前を指定します。

server_role
ユーザー定義サーバー ロールの名前を指定します。

GRANT オプション
指定した権限を他のプリンシパルに許可するための権利が、取り消されることを示します。 権限自体は取り消されません。

重要

もし校長が指定された許可を得て GRANT オプションがない場合、その許可自体は取り消されます。

CASCADE
このプリンシパルによって権限が許可または拒否されている他のプリンシパルからも、同じ権限が取り消されることを示します。

注意事項

WITH GRANT OPTIONで付与された許可の連鎖的な取り消しは、その許可の GRANT と DENY の両方を取り消します。

SQL_Server_login
このクエリを実行するプリンシパルが権限を取り消す権利を取得した、元の SQL Server ログインを指定します。

解説

SQL Server ログインおよびサーバー ロールはサーバー レベルのセキュリティ保護可能なリソースです。 次の表に、SQL Server ログインまたはサーバー ロールで取り消すことができる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。

SQL Server ログインまたはサーバー ロールの権限 権限が含まれる SQL Server ログインまたはサーバー ロールの権限 権限が含まれるサーバー権限
CONTROL CONTROL 制御サーバー
IMPERSONATE CONTROL 制御サーバー
VIEW 定義 CONTROL VIEW 任意の定義
ALTER CONTROL "任意の LOGIN を変更"

"任意の SERVER ROLE を変更"

アクセス許可

ログインの場合は、ログイン時にCONTROL権限が必要か、サーバー上の LOGIN 権限をALTERする必要があります。

サーバーロールの場合、サーバーロールに対してCONTROL権限、またはサーバー上の SERVER ROLE 権限をALTERする必要があります。

A. ログインの IMPERSONATE 権限を取り消す

次の例では、Windows ユーザー IMPERSONATE を基に作成された SQL Server ログインから、SQL Server ログイン WanidaBenshoof のアクセス許可 AdvWorks\YoonM を取り消します。

USE master;  
REVOKE IMPERSONATE ON LOGIN::WanidaBenshoof FROM [AdvWorks\YoonM];  
GO  

B. カスケードによる VIEW 定義許可の取り消し

次の例では、SQL Server ログイン VIEW DEFINITIONEricKurjan 権限を、SQL Server ログイン RMeyyappan から取り消します。 ここでは CASCADE オプションを使用して、VIEW DEFINITION がこの権限を許可したプリンシパルに対しても、EricKurjanRMeyyappan 権限を取り消すことを指定します。

USE master;  
REVOKE VIEW DEFINITION ON LOGIN::EricKurjan FROM RMeyyappan   
    CASCADE;  
GO   

C. サーバーロール VIEW DEFINITION権限を取り消す

次の例では、VIEW DEFINITION サーバー ロールに対する Sales サーバー ロールの Auditors` を取り消します。

USE master;  
REVOKE VIEW DEFINITION ON SERVER ROLE::Sales TO Auditors ;  
GO   

参照

sys.server_principals(Transact-SQL)
sys.server_permissions(Transact-SQL)
GRANT サーバー プリンシパルのアクセス許可 (Transact-SQL)
DENY サーバー プリンシパルのアクセス許可 (Transact-SQL)
CREATE LOGIN (Transact-SQL)
プリンシパル (データベース エンジン)
権限 (データベース エンジン)
セキュリティ関数 (Transact-SQL)
セキュリティ ストアド プロシージャ (Transact-SQL)