REVOKE (サーバー権限の取り消し) (Transact-SQL)
適用対象: SQL Server
Azure SQL Managed Instance
サーバー レベルの GRANT および DENY の権限を取り消します。
構文
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)