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

データベース ユーザー、データベース ロール、またはアプリケーション ロールに対して許可された権限を拒否します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

DENY permission [ ,...n ]  
    ON 
    {  [ USER :: database_user ]
       | [ ROLE :: database_role ]
       | [ APPLICATION ROLE :: application_role ]
    }
    TO <database_principal> [ ,...n ]
    [ CASCADE ]
        [ AS <database_principal> ]

<database_principal> ::=
        Database_user 
    | Database_role 
    | Application_role 
    | Database_user_mapped_to_Windows_User 
    | Database_user_mapped_to_Windows_Group 
    | Database_user_mapped_to_certificate 
    | Database_user_mapped_to_asymmetric_key 
    | Database_user_with_no_login 

引数

  • permission
    データベース プリンシパルで拒否できる権限を指定します。権限の一覧については、後の「解説」を参照してください。

  • USER ::database_user
    権限を拒否するユーザーのクラスと名前を指定します。スコープ修飾子 (
    ::
    ) が必要です。

  • ROLE ::database_role
    権限を拒否するロールのクラスと名前を指定します。スコープ修飾子 (
    ::
    ) が必要です。

  • APPLICATION ROLE ::application_role
    権限を拒否するアプリケーション ロールのクラスと名前を指定します。スコープ修飾子 (
    ::
    ) が必要です。

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

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

  • Database_user
    データベース ユーザーを指定します。

  • Database_role
    データベース ロールを指定します。

  • Application_role
    アプリケーション ロールを指定します。

  • Database_user_mapped_to_Windows_User
    Windows ユーザーにマップされているデータベース ユーザーを指定します。

  • Database_user_mapped_to_Windows_Group
    Windows グループにマップされているデータベース ユーザーを指定します。

  • Database_user_mapped_to_certificate
    証明書にマップされているデータベース ユーザーを指定します。

  • Database_user_mapped_to_asymmetric_key
    非対称キーにマップされているデータベース ユーザーを指定します。

  • Database_user_with_no_login
    対応するサーバー レベルのプリンシパルがないデータベース ユーザーを指定します。

説明

データベース ユーザー権限

データベース ユーザーは、データベース レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているデータベースに含まれています。次の表に、データベース ユーザーで拒否できる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。

データベース ユーザー権限

権限が含まれるデータベース ユーザー権限

権限が含まれるデータベース権限

CONTROL

CONTROL

CONTROL

IMPERSONATE

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY USER

VIEW DEFINITION

CONTROL

VIEW DEFINITION

データベース ロール権限

データベース ロールは、データベース レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているデータベースに含まれています。次の表に、データベース ロールで拒否できる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。

データベース ロール権限

権限が含まれるデータベース ロール権限

権限が含まれるデータベース権限

CONTROL

CONTROL

CONTROL

TAKE OWNERSHIP

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY ROLE

VIEW DEFINITION

CONTROL

VIEW DEFINITION

アプリケーション ロール権限

アプリケーション ロールは、データベース レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているデータベースに含まれています。次の表に、アプリケーション ロールで拒否できる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。

アプリケーション ロール権限

権限が含まれるアプリケーション ロール権限

権限が含まれるデータベース権限

CONTROL

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY APPLICATION ROLE

VIEW DEFINITION

CONTROL

VIEW DEFINITION

権限

指定したプリンシパルに対する CONTROL 権限、または CONTROL 権限を暗黙的に含む上位の権限が必要です。

db_owner 固定データベース ロールのメンバなど、データベースに対する CONTROL 権限が許可されているユーザーは、データベース内のセキュリティ保護可能なリソースに対する権限を拒否できます。

A. ユーザーの CONTROL 権限を別のユーザーに対して拒否する

次の例では、AdventureWorks ユーザー Wanida の CONTROL 権限を、ユーザー RolandX に対して拒否します。

USE AdventureWorks;
DENY CONTROL ON USER::Wanida TO RolandX;
GO

B. ロールの VIEW DEFINITION 権限を、GRANT OPTION で権限が許可されたユーザーに対して拒否する

次の例では、AdventureWorks ロール SammamishParking の VIEW DEFINITION 権限を、データベース ユーザー JinghaoLiu に対して拒否します。ユーザー JinghaoLiu には、GRANT OPTION を指定して VIEW DEFINITION 権限が許可されているため、CASCADE オプションを指定します。

USE AdventureWorks;
DENY VIEW DEFINITION ON ROLE::SammamishParking 
    TO JinghaoLiu CASCADE;
GO

C. ユーザーの IMPERSONATE 権限をアプリケーション ロールに対して拒否する

次の例では、ユーザー HamithaL の IMPERSONATE 権限を、AdventureWorks のアプリケーション ロール AccountsPayable17 に対して拒否します。

USE AdventureWorks;
DENY IMPERSONATE ON USER::HamithaL TO AccountsPayable17;
GO