適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric の SQL データベース
SQL Server のデータベース ユーザー、データベース ロール、またはアプリケーション ロールに対して許可された権限を拒否します。
Syntax
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
Arguments
permission
データベース プリンシパルで拒否できる権限を指定します。 権限の一覧については、後の「解説」を参照してください。
USER ::database_user
権限を拒否するユーザーのクラスと名前を指定します。 スコープ修飾子 ( :: ) が必要です。
ROLE ::database_role
権限を拒否するロールのクラスと名前を指定します。 スコープ修飾子 ( :: ) が必要です。
APPLICATION ROLE ::application_role
適用対象: SQL Server 2008 (10.0.x) 以降、SQL Database。
権限を拒否するアプリケーション ロールのクラスと名前を指定します。 スコープ修飾子 ( :: ) が必要です。
CASCADE
このプリンシパルによって権限が許可されている他のプリンシパルに対しても、同じ権限を拒否することを示します。
<database_principal>
このクエリを実行するプリンシパルが権限を取り消す権利を取得した、元のプリンシパルを指定します。
Database_user
データベース ユーザーを指定します。
Database_role
データベース ロールを指定します。
Application_role
適用対象: SQL Server 2008 (10.0.x) 以降、SQL Database。
アプリケーション ロールを指定します。
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
対応するサーバー レベルのプリンシパルがないデータベース ユーザーを指定します。
Remarks
データベース ユーザー権限
データベース ユーザーは、データベース レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているデータベースに含まれています。 次の表に、データベース ユーザーで拒否できる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。
| データベース ユーザー権限 | 権限が含まれるデータベース ユーザー権限 | 権限が含まれるデータベース権限 |
|---|---|---|
| CONTROL | CONTROL | CONTROL |
| IMPERSONATE | CONTROL | CONTROL |
| ALTER | CONTROL | "任意の USER を変更" |
| VIEW 定義 | CONTROL | VIEW 定義 |
データベース ロール権限
データベース ロールは、データベース レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているデータベースに含まれています。 次の表に、データベース ロールで拒否できる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。
| データベース ロール権限 | 権限が含まれるデータベース ロール権限 | 権限が含まれるデータベース権限 |
|---|---|---|
| CONTROL | CONTROL | CONTROL |
| 所有権 | CONTROL | CONTROL |
| ALTER | CONTROL | "任意の ROLE を変更" |
| VIEW 定義 | CONTROL | VIEW 定義 |
アプリケーション ロール権限
アプリケーション ロールは、データベース レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているデータベースに含まれています。 次の表に、アプリケーション ロールで拒否できる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。
| アプリケーション ロール権限 | 権限が含まれるアプリケーション ロール権限 | 権限が含まれるデータベース権限 |
|---|---|---|
| CONTROL | CONTROL | CONTROL |
| ALTER | CONTROL | "任意の APPLICATION ROLE を変更" |
| VIEW 定義 | CONTROL | VIEW 定義 |
Permissions
指定したプリンシパルに対する CONTROL 権限、または CONTROL 権限を暗黙的に含む上位の権限が必要です。
db_owner 固定データベース ロールのメンバーなど、データベースに対する CONTROL 権限が許可されているユーザーは、データベース内のセキュリティ保護可能なリソースに対する権限を拒否できます。
Examples
A. ユーザーの CONTROL 権限を別のユーザーに対して拒否する
以下の例は、AdventureWorks2025のユーザーCONTROLWanidaユーザーRolandXへの許可を否定しています。
USE AdventureWorks2022;
DENY CONTROL ON USER::Wanida TO RolandX;
GO
B. VIEW OPTIONで与えられたユーザーに対して、役割のDEFINITION権限を拒否することGRANT
以下の例は、AdventureWorks2025の役割VIEW DEFINITIONデータベースユーザーSammamishParkingに対するJinghaoLiu許可を否定しています。
CASCADEオプションは、ユーザーJinghaoLiuがGRANTオプションでVIEW定義権限が付与されているため指定されています。
USE AdventureWorks2022;
DENY VIEW DEFINITION ON ROLE::SammamishParking
TO JinghaoLiu CASCADE;
GO
C. ユーザーの IMPERSONATE 権限をアプリケーション ロールに対して拒否する
以下の例は、AdventureWorks2025アプリケーションロールIMPERSONATEHamithaLユーザーへの許可をAccountsPayable17否定しています。
適用対象: SQL Server 2008 (10.0.x) 以降、SQL Database。
USE AdventureWorks2022;
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)
権限 (データベース エンジン)
プリンシパル (データベース エンジン)