REVOKE (Transact-SQL)
以前に許可または拒否した権限を取り消します。
構文
Simplified syntax for REVOKE
REVOKE [ GRANT OPTION FOR ]
{
[ ALL [ PRIVILEGES ] ]
|
permission [ ( column [ ,...n ] ) ] [ ,...n ]
}
[ ON [ class :: ] securable ]
{ TO | FROM } principal [ ,...n ]
[ CASCADE] [ AS principal ]
引数
GRANT OPTION FOR
指定した権限を与える許可を取り消します。CASCADE 引数を使用する場合、この引数は必須です。重要 : 指定した権限が GRANT オプションなしでプリンシパルに許可されている場合は、その権限自体が取り消されます。
ALL
このオプションでは、可能な権限がすべて取り消されるわけではありません。ALL を指定すると、次の権限が取り消されます。- セキュリティ保護可能なリソースがデータベースの場合、BACKUP DATABASE、BACKUP LOG、CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE、CREATE VIEW。
- セキュリティ保護可能なリソースがスカラ関数の場合、EXECUTE および REFERENCES。
- セキュリティ保護可能なリソースがテーブル値関数の場合、DELETE、INSERT、REFERENCES、SELECT、UPDATE。
- セキュリティ保護可能なリソースがストアド プロシージャの場合、EXECUTE。
- セキュリティ保護可能なリソースがテーブルの場合、DELETE、INSERT、REFERENCES、SELECT、UPDATE。
- セキュリティ保護可能なリソースがビューの場合、DELETE、INSERT、REFERENCES、SELECT、UPDATE。
- PRIVILEGES
SQL 92 準拠のために用意されています。ALL の動作は変更されません。
- permission
権限の名前を指定します。セキュリティ保護可能なリソースと権限の有効な組み合わせについては、後の「セキュリティ保護可能なリソース別の構文」の一覧を参照してください。
- column
権限を取り消すテーブルの列の名前を指定します。かっこで囲む必要があります。
- class
権限を取り消すセキュリティ保護可能なリソースのクラスを指定します。スコープ修飾子 :: が必要です。
- securable
権限を取り消すセキュリティ保護可能なリソースを指定します。
- TO | FROM principal
プリンシパルの名前を指定します。セキュリティ保護可能なリソースに対する権限を取り消すことのできるプリンシパルは、そのリソースによって異なります。有効な組み合わせの詳細については、後の「セキュリティ保護可能なリソース別の構文」の一覧を参照してください。
CASCADE
このプリンシパルによって権限が許可されている他のプリンシパルからも、同じ権限が取り消されることを示します。CASCADE 引数を使用する場合は、GRANT OPTION FOR 引数も指定する必要があります。注意 : WITH GRANT OPTION で許可されている権限を CASCADE で取り消すと、その権限の GRANT および DENY の両方が取り消されます。
- AS principal
このクエリを実行するプリンシパルが権限を取り消す権利を取得した、元のプリンシパルを指定します。
解説
REVOKE ステートメントの完全な構文は複雑です。前の図は、構造をわかりやすくするために簡略化されています。特定のセキュリティ保護可能なリソースに対する権限を取り消すための完全な構文については、後の「セキュリティ保護可能なリソース別の構文」の一覧を参照してください。
許可された権限を取り消す場合は REVOKE ステートメントを使用します。また、GRANT ステートメントによってプリンシパルに特定の権限が許可されないようにするには DENY ステートメントを使用します。
権限を許可すると、指定したセキュリティ保護可能なリソースに対する権限の DENY または REVOKE は削除されます。対象のセキュリティ保護可能なリソースの上位スコープで同じ権限が拒否されている場合は、その DENY ステートメントが優先されますが、上位スコープで許可されている権限を取り消そうとしても、その REVOKE ステートメントは優先されません。
注意 : |
---|
SQL Server 2005 では、テーブル レベルの DENY ステートメントは列レベルの GRANT ステートメントよりも優先されません。この動作は権限の階層内で一貫していませんが、旧バージョンとの互換性のために保持されています。この動作は将来のリリースでは削除される予定です。 |
システム ストアド プロシージャ sp_helprotect では、データベース レベルのセキュリティ保護可能なリソースに対する権限がレポートされます。
GRANT OPTION で権限が許可されたプリンシパルから権限を取り消すときに CASCADE を指定しない場合、REVOKE ステートメントは失敗します。
権限
セキュリティ保護可能なリソースに対して CONTROL 権限があるプリンシパルは、そのリソースの権限を取り消すことができます。オブジェクトの所有者は、所有するオブジェクトに対する権限を取り消すことができます。
sysadmin 固定サーバー ロールのメンバなど、CONTROL SERVER 権限が許可されているユーザーは、サーバー内のセキュリティ保護可能なリソースに対する権限を取り消すことができます。db_owner 固定データベース ロールのメンバなど、データベースに対する CONTROL 権限が許可されているユーザーは、データベース内のセキュリティ保護可能なリソースに対する権限を取り消すことができます。スキーマに対する CONTROL 権限が許可されているユーザーは、スキーマ内のオブジェクトに対する権限を取り消すことができます。
セキュリティ保護可能なリソース別の構文
次の表は、セキュリティ保護可能なリソースと、その構文について説明しているトピックの一覧です。
セキュリティ保護可能なリソース | トピック |
---|---|
アプリケーション ロール |
|
アセンブリ |
|
非対称キー |
|
証明書 |
|
コントラクト |
|
データベース |
|
エンドポイント |
|
フルテキスト カタログ |
|
関数 |
|
ログイン |
|
メッセージ型 |
|
オブジェクト |
|
キュー |
|
リモート サービス バインド |
|
ロール |
|
ルート |
|
スキーマ |
|
サーバー |
|
サービス |
|
ストアド プロシージャ |
|
対称キー |
|
シノニム |
|
システム オブジェクト |
|
テーブル |
|
型 |
|
ユーザー |
|
ビュー |
|
XML スキーマ コレクション |
参照
関連項目
DENY (Transact-SQL)
GRANT (Transact-SQL)
sp_addgroup (Transact-SQL)
sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL)
sp_changegroup (Transact-SQL)
sp_changedbowner (Transact-SQL)
sp_dropgroup (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helpgroup (Transact-SQL)
sp_helprotect (Transact-SQL)
sp_helpuser (Transact-SQL)