DENY (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウスMicrosoft Fabric の SQL データベース

プリンシパルに対する権限を拒否します。 プリンシパルが、そのグループまたはロールのメンバーシップから権限を継承しないようにします。 DENY すべての権限に優先されますが、オブジェクト所有者やsysadmin固定サーバーの役割のメンバーには適用されません DENY 。 セキュリティに関する注意 sysadmin 固定サーバー ロールのメンバーとオブジェクトの所有者の権限を拒否することはできません。

Transact-SQL 構文表記規則

Syntax

SQL Server、Azure SQL Database、および Fabric SQL データベースの構文

 
-- Simplified syntax for DENY  
DENY   { ALL [ PRIVILEGES ] } 
     | <permission>  [ ( column [ ,...n ] ) ] [ ,...n ]  
    [ ON [ <class> :: ] securable ] 
    TO principal [ ,...n ]   
    [ CASCADE] [ AS principal ]  
[;]

<permission> ::=  
{ see the tables below }  
  
<class> ::=  
{ see the tables below }  

Azure Synapse Analytics と Parallel Data Warehouse と Microsoft Fabric Warehouse の構文

DENY   
    <permission> [ ,...n ]  
    [ ON [ <class_> :: ] securable ]   
    TO principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

Arguments

ALL
このオプションでは、可能な権限がすべて拒否されるわけではありません。 ALL を指定すると、次の権限が拒否されます。

  • もしセキュア対象がデータベースであれば、ALLは BACKUPDATABASE、 BACKUP ログ、 CREATE DATABASE、 CREATE DEFAULT、 CREATE FUNCTION、 CREATE PROCEDURE、 CREATE RULE、 CREATE TABLE、 CREATE VIEWを意味します。

  • セキュリティ保護可能なリソースがスカラー関数の場合、EXECUTE および REFERENCES。

  • もしセキュラブルがテーブル値関数であれば、ALLは DELETE、 INSERT、参照、SELECT、 UPDATEを意味します。

  • セキュリティ保護可能なリソースがストアド プロシージャの場合、EXECUTE。

  • もしセキュア可能がテーブルであれば、ALLは DELETE、 INSERT、参照、SELECT、 UPDATEを意味します。

  • もしセキュア可能がビューであれば、ALLは DELETE、 INSERT、参照、SELECT、 UPDATEを意味します。

Note

DENY ALL構文は非推奨となっています。 この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに特定の権限を拒否してください。

PRIVILEGES
ISO 準拠のために用意されています。 ALL の動作は変更されません。

permission
権限の名前を指定します。 権限とセキュリティ保護可能なリソースの有効な組み合わせについては、後のトピックを参照してください。

column
権限を拒否するテーブルの列の名前を指定します。 かっこ () で囲む必要があります。

class
権限を拒否するセキュリティ保護可能なリソースのクラスを指定します。 スコープ修飾子 :: が必要です。

securable
権限を拒否するセキュリティ保護可能なリソースを指定します。

TO校長
プリンシパルの名前です。 セキュリティ保護可能なリソースに対する権限を拒否できるプリンシパルは、そのリソースによって異なります。 有効な組み合わせについては、後のセキュリティ保護可能なリソースの各トピックを参照してください。

CASCADE
指定したプリンシパル、およびこのプリンシパルによって権限が許可されている他のすべてのプリンシパルに対しても、同じ権限を拒否することを示します。 校長が許可を得てオプション GRANT 必要です。

AS校長
このクエリを実行するプリンシパルが権限を拒否する権利を取得した、元のプリンシパルを指定します。 AS 句は、権限の拒否者として記録されるプリンシパルは、ステートメントを実行しているユーザー以外のプリンシパルでなければならないことを示すために使います。 たとえば、ユーザー Mary の principal_id は 12、ユーザー Raul の principal_id は 15 であるものとします。 Mary DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; 実行sys.database_permissionsテーブルは、ステートメントが実際にユーザー 13 (Mary) によって実行された場合でも、deny ステートメントのgrantor_principal_idが 15 (ラウル) であることを示します。

このステートメントで AS を使っても、別のユーザーを偽装できることは意味しません。

Remarks

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

DENY もしCASCADEが指定されない場合、その許可が付与されたプリンシパルに対してその許可を拒否する場合 GRANT 失敗します。

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

Microsoft Fabricでは、現時点ではCREATE USERを明示的に実行することはできません。 GRANTやDENYが実行されると、ユーザーは自動的に作成されます。

Caution

テーブル レベルの DENY は、列レベルの GRANTよりも優先されません。 この動作は権限の階層内で一貫していませんが、旧バージョンとの互換性のために保持されています。 将来のリリースでは削除される予定です。

Caution

データベースに対する CONTROL 権限を拒否すると、そのデータベースに対する CONNECT 権限が暗黙的に拒否されます。 データベースに対する CONTROL 権限を拒否されたプリンシパルは、そのデータベースに接続できません。

Caution

CONTROL SERVER 権限を拒否すると、そのサーバーに対する CONNECT SQL 権限が暗黙的に拒否されます。 サーバーに対する CONTROL SERVER 権限が拒否されたプリンシパルは、そのサーバーに接続できません。

Permissions

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

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

Examples

次の表は、セキュリティ保護可能なリソースと、セキュリティ保護可能なリソース固有の構文について説明しているトピックの一覧です。

Securables Syntax
アプリケーション ロール DENY データベースプリンシパルパーセンテーション(Transact-SQL)
Assembly DENY アセンブリ権限(Transact-SQL)
非対称キー DENY 非対称鍵権限(Transact-SQL)
可用性グループ DENY 可用性グループ権限(Transact-SQL)
Certificate DENY 証明書許可(Transact-SQL)
Contract DENY Service Broker のアクセス許可 (Transact-SQL)
Database DENY データベース権限 (Transact-SQL)
データベース スコープ資格情報 DENY データベーススコープ認証(Transact-SQL)
Endpoint DENY エンドポイントのアクセス許可 (Transact-SQL)
Full-Text カタログ DENY Full-Text パーセンテーション(Transact-SQL)
Full-Text ストップリスト DENY Full-Text パーセンテーション(Transact-SQL)
Function DENY オブジェクトの権限 (Transact-SQL)
Login DENY サーバー プリンシパルのアクセス許可 (Transact-SQL)
メッセージの種類 DENY Service Broker のアクセス許可 (Transact-SQL)
Object DENY オブジェクトの権限 (Transact-SQL)
Queue DENY オブジェクトの権限 (Transact-SQL)
リモート サービス バインド DENY Service Broker のアクセス許可 (Transact-SQL)
Role DENY データベースプリンシパルパーセンテーション(Transact-SQL)
Route DENY Service Broker のアクセス許可 (Transact-SQL)
Schema DENY スキーマ権限(Transact-SQL)
検索プロパティ リスト DENY 検索プロパティリストの権限(Transact-SQL)
Server DENY サーバーのアクセス許可 (Transact-SQL)
Service DENY Service Broker のアクセス許可 (Transact-SQL)
ストアド プロシージャ DENY オブジェクトの権限 (Transact-SQL)
対称キー DENY 対称鍵権限(Transact-SQL)
Synonym DENY オブジェクトの権限 (Transact-SQL)
システム オブジェクト DENY システム オブジェクトの権限 (Transact-SQL)
Table DENY オブジェクトの権限 (Transact-SQL)
タイプ DENY タイプ権限(Transact-SQL)
User DENY データベースプリンシパルパーセンテーション(Transact-SQL)
View DENY オブジェクトの権限 (Transact-SQL)
XML スキーマ コレクション DENY XMLスキーマ収集権限(Transact-SQL)

こちらもご覧ください

REVOKE (Transact-SQL)
sp_addlogin(Transact-SQL)
sp_adduser(Transact-SQL)
sp_changedbowner(Transact-SQL)
sp_dropuser(Transact-SQL)
sp_helprotect(Transact-SQL)
sp_helpuser(Transact-SQL)