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  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

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

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

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

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

重要

指定した権限が GRANT オプションなしでプリンシパルに許可されている場合は、その権限自体が取り消されます。

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

注意事項

WITH GRANT OPTION で許可されている権限を CASCADE で取り消すと、その権限の 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 カタログ ビューで確認できます。

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

サーバー権限 権限が含まれるサーバー権限
ADMINISTER BULK OPERATIONS CONTROL SERVER
ALTER ANY AVAILABILITY GROUP

適用対象: SQL Server (SQL Server 2012 (11.x) から 現在のバージョンまで)。
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 EVENT SESSION CONTROL SERVER
ALTER ANY LINKED SERVER CONTROL SERVER
ALTER ANY LOGIN CONTROL SERVER
ALTER ANY SERVER AUDIT CONTROL SERVER
ALTER ANY SERVER ROLE

適用対象: SQL Server (SQL Server 2012 (11.x) から 現在のバージョンまで)。
CONTROL SERVER
ALTER RESOURCES CONTROL SERVER
ALTER SERVER STATE CONTROL SERVER
ALTER SETTINGS CONTROL SERVER
ALTER TRACE CONTROL SERVER
AUTHENTICATE SERVER CONTROL SERVER
CONNECT ANY DATABASE

適用対象: SQL Server (SQL Server 2014 (12.x) から 現在のバージョンまで)。
CONTROL SERVER
CONNECT SQL CONTROL SERVER
CONTROL SERVER CONTROL SERVER
CREATE ANY DATABASE ALTER ANY DATABASE
CREATE AVAILABILITY GROUP

適用対象: SQL Server (SQL Server 2012 (11.x) から 現在のバージョンまで)。
ALTER ANY AVAILABILITY GROUP
CREATE DDL EVENT NOTIFICATION ALTER ANY EVENT NOTIFICATION
CREATE ENDPOINT ALTER ANY ENDPOINT
CREATE SERVER ROLE

適用対象: SQL Server (SQL Server 2012 (11.x) から 現在のバージョンまで)。
ALTER ANY SERVER ROLE
CREATE TRACE EVENT NOTIFICATION ALTER ANY EVENT NOTIFICATION
EXTERNAL ACCESS ASSEMBLY CONTROL SERVER
IMPERSONATE ANY LOGIN

適用対象: SQL Server (SQL Server 2014 (12.x) から 現在のバージョンまで)。
CONTROL SERVER
SELECT ALL USER SECURABLES

適用対象: SQL Server (SQL Server 2014 (12.x) から 現在のバージョンまで)。
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 権限を保持しますが、他のプリンシパルに権限を許可することはできなくなります。

参照

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)