DENY (Transact-SQL)DENY (Transact-SQL)

適用対象: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

プリンシパルに対する権限を拒否します。Denies a permission to a principal. プリンシパルが、そのグループまたはロールのメンバーシップから権限を継承しないようにします。Prevents that principal from inheriting the permission through its group or role memberships. DENY は、オブジェクトの所有者または sysadmin 固定サーバー ロールのメンバーに適用されない点を除いて、すべての権限より優先されます。DENY takes precedence over all permissions, except that DENY does not apply to object owners or members of the sysadmin fixed server role. セキュリティに関する注意 sysadmin 固定サーバー ロールのメンバーとオブジェクトの所有者の権限を拒否することはできません。Security Note Members of the sysadmin fixed server role and object owners cannot be denied permissions."

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

-- Syntax for SQL Server and Azure SQL Database  
  
-- 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 }  
-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse  
  
DENY   
    <permission> [ ,...n ]  
    [ ON [ <class_> :: ] securable ]   
    TO principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

引数Arguments

ALLALL
このオプションでは、可能な権限がすべて拒否されるわけではありません。This option does not deny all possible permissions. ALL を指定すると、次の権限が拒否されます。Denying ALL is equivalent to denying the following permissions.

  • セキュリティ保護可能なリソースがデータベースの場合、ALL は BACKUP DATABASE、BACKUP LOG、CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE、および CREATE VIEW を意味します。If the securable is a database, ALL means BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, and CREATE VIEW.

  • セキュリティ保護可能なリソースがスカラー関数の場合、EXECUTE および REFERENCES。If the securable is a scalar function, ALL means EXECUTE and REFERENCES.

  • セキュリティ保護可能なリソースがテーブル値関数の場合、DELETE、INSERT、REFERENCES、SELECT、UPDATE。If the securable is a table-valued function, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

  • セキュリティ保護可能なリソースがストアド プロシージャの場合、EXECUTE。If the securable is a stored procedure, ALL means EXECUTE.

  • セキュリティ保護可能なリソースがテーブルの場合、ALL は DELETE、INSERT、REFERENCES、SELECT、および UPDATE を意味します。If the securable is a table, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

  • セキュリティ保護可能なリソースがビューの場合、ALL は DELETE、INSERT、REFERENCES、SELECT、および UPDATE を意味します。If the securable is a view, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

注意

DENY ALL 構文は非推奨です。The DENY ALL syntax is deprecated. この機能はメンテナンス モードであり、Microsoft SQL Server の将来のバージョンで削除される可能性があります。This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。Avoid using this feature in new development work, and plan to modify applications that currently use this feature.代わりに特定の権限を拒否してください。Deny specific permissions instead.

PRIVILEGESPRIVILEGES
ISO 準拠のために用意されています。Included for ISO compliance. ALL の動作は変更されません。Does not change the behavior of ALL.

permissionpermission
権限の名前を指定します。Is the name of a permission. 権限とセキュリティ保護可能なリソースの有効な組み合わせについては、後のトピックを参照してください。The valid mappings of permissions to securables are described in the sub-topics listed below.

columncolumn
権限を拒否するテーブルの列の名前を指定します。Specifies the name of a column in a table on which permissions are being denied. かっこ () で囲む必要があります。The parentheses () are required.

classclass
権限を拒否するセキュリティ保護可能なリソースのクラスを指定します。Specifies the class of the securable on which the permission is being denied. スコープ修飾子 :: が必要です。The scope qualifier :: is required.

securablesecurable
権限を拒否するセキュリティ保護可能なリソースを指定します。Specifies the securable on which the permission is being denied.

TO principalTO principal
プリンシパルの名前です。Is the name of a principal. セキュリティ保護可能なリソースに対する権限を拒否できるプリンシパルは、そのリソースによって異なります。The principals to which permissions on a securable can be denied vary, depending on the securable. 有効な組み合わせについては、後のセキュリティ保護可能なリソースの各トピックを参照してください。See the securable-specific topics listed below for valid combinations.

CASCADECASCADE
指定したプリンシパル、およびこのプリンシパルによって権限が許可されている他のすべてのプリンシパルに対しても、同じ権限を拒否することを示します。Indicates that the permission is denied to the specified principal and to all other principals to which the principal granted the permission. GRANT OPTION を使用してプリンシパルに権限が与えられている場合に必要となります。Required when the principal has the permission with GRANT OPTION.

AS principalAS principal
このクエリを実行するプリンシパルが権限を拒否する権利を取得した、元のプリンシパルを指定します。Specifies the principal from which the principal executing this query derives its right to deny the permission. AS 句は、権限の拒否者として記録されるプリンシパルは、ステートメントを実行しているユーザー以外のプリンシパルでなければならないことを示すために使います。Use the AS principal clause to indicate that the principal recorded as the denier of the permission should be a principal other than the person executing the statement. たとえば、ユーザー Mary の principal_id は 12、ユーザー Raul の principal_id は 15 であるものとします。For example, presume that user Mary is principal_id 12 and user Raul is principal 15. Mary が DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; を実行します。ステートメントは実際にはユーザー 13 (Mary) によって実行されましたが、sys.database_permissions テーブルでは、DENY ステートメントの grantor_prinicpal_id は 15 (Raul) であることが示されます。Mary executes DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Now the sys.database_permissions table will indicate that the grantor_prinicpal_id of the deny statement was 15 (Raul) even though the statement was actually executed by user 13 (Mary).

このステートメントで AS を使っても、別のユーザーを偽装できることは意味しません。The use of AS in this statement does not imply the ability to impersonate another user.

RemarksRemarks

DENY ステートメントの完全な構文は複雑です。The full syntax of the DENY statement is complex. 前の構文ダイアグラムは、構造をわかりやすくするために簡略化されています。The syntax diagram above was simplified to draw attention to its structure. セキュリティ保護可能なリソースに対する権限を拒否するための完全な構文については、後のトピックを参照してください。Complete syntax for denying permissions on specific securables is described in the topics listed below.

GRANT OPTION で権限が付与されたプリンシパルに対して、その権限を拒否するときに CASCADE を指定しないと、DENY は失敗します。DENY will fail if CASCADE is not specified when denying a permission to a principal that was granted that permission with GRANT OPTION specified.

システム ストアド プロシージャ sp_helprotect では、データベース レベルのセキュリティ保護可能なリソースに対する権限をレポートします。The sp_helprotect system stored procedure reports permissions on a database-level securable.

注意事項

テーブル レベルの DENY は列レベルの GRANT ステートメントよりも優先されません。A table-level DENY does not take precedence over a column-level GRANT. この動作は権限の階層内で一貫していませんが、旧バージョンとの互換性のために保持されています。This inconsistency in the permissions hierarchy has been preserved for the sake of backward compatibility. 将来のリリースでは削除される予定です。It will be removed in a future release.

注意事項

データベースに対する CONTROL 権限を拒否すると、そのデータベースに対する CONNECT 権限が暗黙的に拒否されます。Denying CONTROL permission on a database implicitly denies CONNECT permission on the database. データベースに対する CONTROL 権限を拒否されたプリンシパルは、そのデータベースに接続できません。A principal that is denied CONTROL permission on a database will not be able to connect to that database.

注意事項

CONTROL SERVER 権限を拒否すると、そのサーバーに対する CONNECT SQL 権限が暗黙的に拒否されます。Denying CONTROL SERVER permission implicitly denies CONNECT SQL permission on the server. サーバーに対する CONTROL SERVER 権限が拒否されたプリンシパルは、そのサーバーに接続できません。A principal that is denied CONTROL SERVER permission on a server will not be able to connect to that server.

アクセス許可Permissions

呼び出し元 (または AS オプションで指定されたプリンシパル) は、セキュリティ保護可能なリソースに対する CONTROL 権限、またはセキュリティ保護可能なリソースに対する CONTROL 権限を暗黙的に与える上位の権限を保持している必要があります。The caller (or the principal specified with the AS option) must have either CONTROL permission on the securable, or a higher permission that implies CONTROL permission on the securable. AS オプションを使用する場合、指定されたプリンシパルは、権限が拒否されるセキュリティ保護可能なリソースを所有している必要があります。If using the AS option, the specified principal must own the securable on which a permission is being denied.

固定サーバー ロール sysadmin のメンバーなど、CONTROL SERVER 権限が許可されているユーザーは、サーバー内のセキュリティ保護可能なリソースに対する権限を拒否できます。Grantees of CONTROL SERVER permission, such as members of the sysadmin fixed server role, can deny any permission on any securable in the server. db_owner 固定データベース ロールのメンバーなど、データベースに対する CONTROL 権限が許可されているユーザーは、データベース内のセキュリティ保護可能なリソースに対する権限を拒否できます。Grantees of CONTROL permission on the database, such as members of the db_owner fixed database role, can deny any permission on any securable in the database. スキーマに対する CONTROL 権限が許可されているユーザーは、スキーマ内のオブジェクトに対する権限を拒否できます。Grantees of CONTROL permission on a schema can deny any permission on any object in the schema. AS 句を使用する場合、指定されるプリンシパルは、権限の拒否対象となるセキュリティ保護可能なリソースを所有している必要があります。If the AS clause is used, the specified principal must own the securable on which permissions are being denied.

使用例Examples

次の表は、セキュリティ保護可能なリソースと、セキュリティ保護可能なリソース固有の構文について説明しているトピックの一覧です。The following table lists the securables and the topics that describe the securable-specific syntax.

アプリケーション ロールApplication Role DENY (データベース プリンシパルの権限の拒否) (Transact-SQL)DENY Database Principal Permissions (Transact-SQL)
アセンブリAssembly DENY (アセンブリの権限の拒否) (Transact-SQL)DENY Assembly Permissions (Transact-SQL)
非対称キーAsymmetric Key DENY (非対称キーの権限の拒否) (Transact-SQL)DENY Asymmetric Key Permissions (Transact-SQL)
可用性グループAvailability Group DENY (可用性グループの権限の拒否) (Transact-SQL)DENY Availability Group Permissions (Transact-SQL)
CertificateCertificate DENY (証明書の権限の拒否) (Transact-SQL)DENY Certificate Permissions (Transact-SQL)
コントラクトContract DENY (Service Broker の権限の拒否) (Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
データベースDatabase DENY (データベースの権限の拒否) (Transact-SQL)DENY Database Permissions (Transact-SQL)
データベース スコープ資格情報Database Scoped Credential DENY (データベース スコープの資格情報の拒否) (Transact-SQL)DENY Database Scoped Credential (Transact-SQL)
エンドポイントEndpoint DENY (エンドポイントの権限の拒否) (Transact-SQL)DENY Endpoint Permissions (Transact-SQL)
フルテキスト カタログFull-Text Catalog DENY (フルテキストの権限の拒否) (Transact-SQL)DENY Full-Text Permissions (Transact-SQL)
フルテキスト ストップリストFull-Text Stoplist DENY (フルテキストの権限の拒否) (Transact-SQL)DENY Full-Text Permissions (Transact-SQL)
機能Function DENY (オブジェクトの権限の拒否) (Transact-SQL)DENY Object Permissions (Transact-SQL)
LoginLogin DENY (サーバー プリンシパルの権限の拒否) (Transact-SQL)DENY Server Principal Permissions (Transact-SQL)
メッセージ型Message Type DENY (Service Broker の権限の拒否) (Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
ObjectObject DENY (オブジェクトの権限の拒否) (Transact-SQL)DENY Object Permissions (Transact-SQL)
キューQueue DENY (オブジェクトの権限の拒否) (Transact-SQL)DENY Object Permissions (Transact-SQL)
リモート サービス バインドRemote Service Binding DENY (Service Broker の権限の拒否) (Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
ロールRole DENY (データベース プリンシパルの権限の拒否) (Transact-SQL)DENY Database Principal Permissions (Transact-SQL)
RouteRoute DENY (Service Broker の権限の拒否) (Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
スキーマSchema DENY (スキーマ権限の拒否) (Transact-SQL)DENY Schema Permissions (Transact-SQL)
検索プロパティ リストSearch Property List DENY (検索プロパティ リスト権限の拒否) (Transact-SQL)DENY Search Property List Permissions (Transact-SQL)
[サーバー]Server DENY (サーバーの権限の拒否) (Transact-SQL)DENY Server Permissions (Transact-SQL)
サービスService DENY (Service Broker の権限の拒否) (Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
ストアド プロシージャStored Procedure DENY (オブジェクトの権限の拒否) (Transact-SQL)DENY Object Permissions (Transact-SQL)
対称キーSymmetric Key DENY (対称キーの権限の拒否) (Transact-SQL)DENY Symmetric Key Permissions (Transact-SQL)
シノニムSynonym DENY (オブジェクトの権限の拒否) (Transact-SQL)DENY Object Permissions (Transact-SQL)
システム オブジェクトSystem Objects DENY (システム オブジェクトの権限の拒否) (Transact-SQL)DENY System Object Permissions (Transact-SQL)
テーブルTable DENY (オブジェクトの権限の拒否) (Transact-SQL)DENY Object Permissions (Transact-SQL)
Type DENY (型の権限の拒否) (Transact-SQL)DENY Type Permissions (Transact-SQL)
ユーザーUser DENY (データベース プリンシパルの権限の拒否) (Transact-SQL)DENY Database Principal Permissions (Transact-SQL)
表示View DENY (オブジェクトの権限の拒否) (Transact-SQL)DENY Object Permissions (Transact-SQL)
XML スキーマ コレクションXML Schema Collection DENY (XML スキーマ コレクションの権限の拒否) (Transact-SQL)DENY XML Schema Collection Permissions (Transact-SQL)

参照See Also

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