DENY (Transact-SQL)

更新 : 2006 年 12 月 12 日

プリンシパルに対する権限を拒否します。プリンシパルが、そのグループまたはロールのメンバシップから権限を継承しないようにします。

構文

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。
  • PRIVILEGES
    SQL-92 準拠のために用意されています。ALL の動作は変更されません。
  • permission
    権限の名前です。権限とセキュリティ保護可能なリソースの有効な組み合わせについては、後のトピックを参照してください。
  • column
    権限を拒否するテーブルの列の名前を指定します。かっこ "()" で囲む必要があります。
  • class
    権限を拒否するセキュリティ保護可能なリソースのクラスを指定します。スコープ修飾子 "::" が必要です。
  • securable
    権限を拒否するセキュリティ保護可能なリソースを指定します。
  • TO principal
    プリンシパルの名前。セキュリティ保護可能なリソースに対する権限を拒否できるプリンシパルは、そのリソースによって異なります。有効な組み合わせについては、後のセキュリティ保護可能なリソースごとのトピックを参照してください。
  • CASCADE
    指定したプリンシパル、およびこのプリンシパルによって権限が許可されている他のすべてのプリンシパルに対しても、同じ権限を拒否することを示します。このオプションは、GRANT OPTION を使用してプリンシパルに権限が与えられている場合に必要となります。
  • AS principal
    このステートメントを実行するプリンシパルが権限を拒否する権利を取得した、元のプリンシパルを指定します。

解説

DENY ステートメントの完全な構文は複雑です。前の図は、構造をわかりやすくするために簡略化されています。セキュリティ保護可能なリソースに対する権限を拒否するための完全な構文については、後のトピックを参照してください。

GRANT OPTION で権限が許可されたプリンシパルに対しては、その権限を拒否するときに CASCADE を指定しないと、DENY は失敗します。

列レベルの権限はオブジェクト権限よりも優先されます。たとえば、拒否権限をテーブルなどのベース オブジェクトに適用した後、許可権限をベース オブジェクトの 1 つの列に適用した場合、ベース オブジェクトに拒否権限が設定されていても、許可権限を持つユーザーはその列にアクセスできます。ただし、列レベルの権限を確実に設定するには、ベース オブジェクトの権限の後に列レベルの権限を適用してください。

ms188338.note(ja-jp,SQL.90).gifメモ :
SQL Server 2005 では、この動作は権限の階層内で一貫していませんが、旧バージョンとの互換性のために保持されています。将来のリリースでは削除される予定です。

システム ストアド プロシージャ sp_helprotect では、データベース レベルのセキュリティ保護可能なリソースに対する権限がレポートされます。

ms188338.Caution(ja-jp,SQL.90).gif注意 :
データベースに対する CONTROL 権限を拒否すると、そのデータベースに対する CONNECT 権限が暗黙的に拒否されます。データベースに対する CONTROL 権限を拒否されたプリンシパルは、そのデータベースに接続できません。同様に、CONTROL SERVER 権限を拒否すると、そのサーバーに対する CONNECT SQL 権限が暗黙的に拒否されます。サーバーに対する CONTROL SERVER 権限を拒否されたプリンシパルは、そのサーバーに接続できません。

権限

呼び出し元 (または AS オプションで指定されたプリンシパル) は、セキュリティ保護可能なリソースに対する CONTROL 権限、またはセキュリティ保護可能なリソースに対する CONTROL 権限を暗黙的に与える上位の権限を保持している必要があります。AS オプションを使用する場合、指定されたプリンシパルは、権限が拒否されるセキュリティ保護可能なリソースを所有している必要があります。

固定サーバー ロール sysadmin のメンバなど、CONTROL SERVER 権限が許可されているユーザーは、サーバー内のセキュリティ保護可能なリソースに対する権限を拒否できます。db_owner 固定データベース ロールのメンバなど、データベースに対する CONTROL 権限が許可されているユーザーは、データベース内のセキュリティ保護可能なリソースに対する権限を拒否できます。スキーマに対する CONTROL 権限が許可されているユーザーは、スキーマ内のオブジェクトに対する権限を拒否できます。AS 句を使用する場合、指定されるプリンシパルは、権限の拒否対象となるセキュリティ保護可能なリソースを所有している必要があります。

セキュリティ保護可能なリソース別の構文については、次のトピックを参照してください。

アプリケーション ロール

DENY (データベース プリンシパルの権限の拒否) (Transact-SQL)

アセンブリ

DENY (アセンブリの権限の拒否) (Transact-SQL)

非対称キー

DENY (非対称キーの権限の拒否) (Transact-SQL)

証明書

DENY (証明書の権限の拒否) (Transact-SQL)

コントラクト

DENY (Service Broker の権限の拒否) (Transact-SQL)

データベース

DENY (データベースの権限の拒否) (Transact-SQL)

エンドポイント

DENY (エンドポイントの権限の拒否) (Transact-SQL)

フルテキスト カタログ

DENY (フルテキスト カタログの権限の拒否) (Transact-SQL)

関数

DENY (オブジェクトの権限の拒否) (Transact-SQL)

ログイン

DENY (サーバー プリンシパルの権限の拒否) (Transact-SQL)

メッセージ型

DENY (Service Broker の権限の拒否) (Transact-SQL)

オブジェクト

DENY (オブジェクトの権限の拒否) (Transact-SQL)

キュー

DENY (オブジェクトの権限の拒否) (Transact-SQL)

リモート サービス バインド

DENY (Service Broker の権限の拒否) (Transact-SQL)

ロール

DENY (データベース プリンシパルの権限の拒否) (Transact-SQL)

ルート

DENY (Service Broker の権限の拒否) (Transact-SQL)

スキーマ

DENY (スキーマ権限の拒否) (Transact-SQL)

サーバー

DENY (サーバーの権限の拒否) (Transact-SQL)

サービス

DENY (Service Broker の権限の拒否) (Transact-SQL)

ストアド プロシージャ

DENY (オブジェクトの権限の拒否) (Transact-SQL)

対称キー

DENY (対称キーの権限の拒否) (Transact-SQL)

シノニム

DENY (オブジェクトの権限の拒否) (Transact-SQL)

システム オブジェクト

DENY (システム オブジェクトの権限の拒否) (Transact-SQL)

テーブル

DENY (オブジェクトの権限の拒否) (Transact-SQL)

DENY (型の権限の拒否) (Transact-SQL)

ユーザー

DENY (データベース プリンシパルの権限の拒否) (Transact-SQL)

ビュー

DENY (オブジェクトの権限の拒否) (Transact-SQL)

XML スキーマ コレクション

DENY (XML スキーマ コレクションの権限の拒否) (Transact-SQL)

参照

関連項目

DENY (Transact-SQL)
REVOKE (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)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

追加内容 :
  • 列レベルの権限がオブジェクトの権限より優先されることを明記した内容を追加。