次の方法で共有


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

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

適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)、Windows Azure 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

    適用対象: SQL Server 2008 から SQL Server 2014。

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

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

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

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

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

  • Application_role

    適用対象: SQL Server 2008 から SQL Server 2014。

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

  • Database_user_mapped_to_Windows_User

    適用対象: SQL Server 2008 から SQL Server 2014。

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

  • Database_user_mapped_to_Windows_Group

    適用対象: SQL Server 2008 から SQL Server 2014。

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

  • Database_user_mapped_to_certificate

    適用対象: SQL Server 2008 から SQL Server 2014。

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

  • Database_user_mapped_to_asymmetric_key

    適用対象: SQL Server 2008 から SQL Server 2014。

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

  • 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 権限を別のユーザーに対して拒否する

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

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

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

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

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

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

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

適用対象: SQL Server 2008 から SQL Server 2014。

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

関連項目

参照

GRANT (データベース プリンシパルの権限の許可) (Transact-SQL)

REVOKE (データベース プリンシパルの権限の取り消し) (Transact-SQL)

sys.database_principals (Transact-SQL)

sys.database_permissions (Transact-SQL)

CREATE USER (Transact-SQL)

CREATE APPLICATION ROLE (Transact-SQL)

CREATE ROLE (Transact-SQL)

GRANT (Transact-SQL)

概念

権限 (データベース エンジン)

プリンシパル (データベース エンジン)