DENY (Transact-SQL)
プリンシパルに対する権限を拒否します。プリンシパルが、そのグループまたはロールのメンバーシップから権限を継承しないようにします。
構文
Simplified syntax for DENY
DENY { ALL [ PRIVILEGES ] }
| permission [ ( column [ ,...n ] ) ] [ ,...n ]
[ ON [ class :: ] securable ] TO principal [ ,...n ]
[ CASCADE] [ AS principal ]
引数
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。
注 DENY ALL 構文は推奨されません。この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。代わりに特定の権限を拒否してください。
PRIVILEGES
ISO 準拠のために用意されています。ALL の動作は変更されません。permission
権限の名前を指定します。権限とセキュリティ保護可能なリソースの有効な組み合わせについては、後のトピックを参照してください。column
権限を拒否するテーブルの列の名前を指定します。かっこ "()" で囲む必要があります。class
権限を拒否するセキュリティ保護可能なリソースのクラスを指定します。スコープ修飾子 "::" が必要です。securable
権限を拒否するセキュリティ保護可能なリソースを指定します。TO principal
プリンシパルの名前を指定します。セキュリティ保護可能なリソースに対する権限を拒否できるプリンシパルは、そのリソースによって異なります。有効な組み合わせについては、後のセキュリティ保護可能なリソースごとのトピックを参照してください。CASCADE
指定したプリンシパル、およびこのプリンシパルによって権限が許可されている他のすべてのプリンシパルに対しても、同じ権限を拒否することを示します。このオプションは、GRANT OPTION を使用してプリンシパルに権限が与えられている場合に必要となります。AS principal
このステートメントを実行するプリンシパルが権限を拒否する権利を取得した、元のプリンシパルを指定します。
説明
DENY ステートメントの完全な構文は複雑です。前の図は、構造をわかりやすくするために簡略化されています。セキュリティ保護可能なリソースに対する権限を拒否するための完全な構文については、後のトピックを参照してください。
GRANT OPTION で権限が許可されたプリンシパルに対しては、その権限を拒否するときに CASCADE を指定しないと、DENY は失敗します。
システム ストアド プロシージャ sp_helprotect では、データベース レベルのセキュリティ保護可能なリソースに対する権限がレポートされます。
注意 |
---|
テーブル レベルの DENY ステートメントが列レベルの GRANT ステートメントより優先されることはありません。この動作は権限の階層内で一貫していませんが、旧バージョンとの互換性のために保持されています。将来のリリースでは削除される予定です。 |
注意 |
---|
データベースに対する CONTROL 権限を拒否すると、そのデータベースに対する CONNECT 権限が暗黙的に拒否されます。データベースに対する CONTROL 権限を拒否されたプリンシパルは、そのデータベースに接続できません。 |
注意 |
---|
CONTROL SERVER 権限を拒否すると、そのサーバーに対する CONNECT SQL 権限が暗黙的に拒否されます。サーバーに対する CONTROL SERVER 権限を拒否されたプリンシパルは、そのサーバーに接続できません。 |
権限
呼び出し元 (または AS オプションで指定されたプリンシパル) は、セキュリティ保護可能なリソースに対する CONTROL 権限、またはセキュリティ保護可能なリソースに対する CONTROL 権限を暗黙的に与える上位の権限を保持している必要があります。AS オプションを使用する場合、指定されたプリンシパルは、権限が拒否されるセキュリティ保護可能なリソースを所有している必要があります。
固定サーバー ロール sysadmin のメンバーなど、CONTROL SERVER 権限が許可されているユーザーは、サーバー内のセキュリティ保護可能なリソースに対する権限を拒否できます。db_owner 固定データベース ロールのメンバーなど、データベースに対する CONTROL 権限が許可されているユーザーは、データベース内のセキュリティ保護可能なリソースに対する権限を拒否できます。スキーマに対する CONTROL 権限が許可されているユーザーは、スキーマ内のオブジェクトに対する権限を拒否できます。AS 句を使用する場合、指定されるプリンシパルは、権限の拒否対象となるセキュリティ保護可能なリソースを所有している必要があります。
例
次の表は、セキュリティ保護可能なリソースと、その構文について説明しているトピックの一覧です。
アプリケーション ロール |
|
アセンブリ |
|
非対称キー |
|
証明書 |
|
コントラクト |
|
データベース |
|
エンドポイント |
|
フルテキスト カタログ |
|
フルテキスト ストップ リスト |
|
関数 |
|
ログイン |
|
メッセージ型 |
|
オブジェクト |
|
キュー |
|
リモート サービス バインド |
|
ロール |
|
ルート |
|
スキーマ |
|
サーバー |
|
サービス |
|
ストアド プロシージャ |
|
対称キー |
|
シノニム |
|
システム オブジェクト |
|
テーブル |
|
型 |
|
ユーザー |
|
ビュー |
|
XML スキーマ コレクション |