REVOKE サーバー権限(Transact-SQL)

適用対象:SQL ServerAzure SQL Managed Instance

サーバーレベルの 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  
    | 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  

引数

permission
サーバーで許可できる権限を指定します。 権限の一覧については、後の「解説」を参照してください。

{ TO | FROM } <grantee_principal> 権限の取り消し元であるプリンシパルを指定します。

AS <grantor_principal> このクエリを実行するプリンシパルの、権限を取り消す権利の取得元であるプリンシパルを指定します。

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

重要

もし校長が指定された許可を得て 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 カタログ ビューで確認できます。

サーバーは権限の階層の最上位となります。 次の表には、サーバーで取り消すことができる最も限定的な権限が示されています。

サーバー権限 権限が含まれるサーバー権限
一括操作の管理 制御サーバー
"任意の AVAILABILITY GROUP を変更"

適用対象: SQL Server (SQL Server 2012 (11.x) から 現在のバージョンまで)。
制御サーバー
任意の接続を変更する 制御サーバー
"任意の CREDENTIAL を変更" 制御サーバー
"任意の DATABASE を変更" 制御サーバー
"任意の ENDPOINT を変更" 制御サーバー
"任意の EVENT NOTIFICATION を変更" 制御サーバー
"任意の EVENT SESSION を変更" 制御サーバー
任意のリンク サーバーを変更する 制御サーバー
"任意の LOGIN を変更" 制御サーバー
"任意の SERVER AUDIT を変更" 制御サーバー
"任意の SERVER ROLE を変更"

適用対象: SQL Server (SQL Server 2012 (11.x) から 現在のバージョンまで)。
制御サーバー
リソースの変更 制御サーバー
サーバーの状態を変更 制御サーバー
設定を変更 制御サーバー
ALTER TRACE(トレースの変更権限) 制御サーバー
サーバーの認証 制御サーバー
どのものでも接続してください DATABASE

適用対象: SQL Server (SQL Server 2014 (12.x) から 現在のバージョンまで)。
制御サーバー
SQLに接続 制御サーバー
制御サーバー 制御サーバー
何でも作成してください DATABASE "任意の DATABASE を変更"
CREATE AVAILABILITY GROUP

適用対象: SQL Server (SQL Server 2012 (11.x) から 現在のバージョンまで)。
"任意の AVAILABILITY GROUP を変更"
DDLを作成 EVENT NOTIFICATION "任意の EVENT NOTIFICATION を変更"
CREATE ENDPOINT "任意の ENDPOINT を変更"
CREATE SERVER ROLE

適用対象: SQL Server (SQL Server 2012 (11.x) から 現在のバージョンまで)。
"任意の SERVER ROLE を変更"
トレースを作成 EVENT NOTIFICATION "任意の EVENT NOTIFICATION を変更"
外部アクセス ASSEMBLY 制御サーバー
誰かになりすます LOGIN

適用対象: SQL Server (SQL Server 2014 (12.x) から 現在のバージョンまで)。
制御サーバー
すべての USER セキュリティ保護可能なリソースを選択する

適用対象: SQL Server (SQL Server 2014 (12.x) から 現在のバージョンまで)。
制御サーバー
SHUTDOWN 制御サーバー
Unsafe ASSEMBLY 制御サーバー
VIEW どんな人でも DATABASE VIEW 任意の定義
VIEW 任意の定義 制御サーバー
VIEW サーバーの状態 サーバーの状態を変更

アクセス許可

CONTROL SERVER 権限、または sysadmin 固定サーバー ロールのメンバーシップが必要です。

A. ログインから権限を取り消す

次の例では、SQL Server ログイン VIEW SERVER STATE から、アクセス許可 WanidaBenshoof を取り消します。

USE master;  
REVOKE VIEW SERVER STATE FROM WanidaBenshoof;  
GO  

B. WITH GRANT オプションの取り消し

次の例では、SQL Server ログイン CONNECT SQL から、JanethEsteves を許可する権利を取り消します。

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)
権限の階層 (データベース エンジン)
sys.fn_builtin_permissions(Transact-SQL)
sys.fn_my_permissions(Transact-SQL)
HAS_PERMS_BY_NAME(Transact-SQL)