REVOKE (Transact-SQL)REVOKE (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

以前に許可または拒否した権限を取り消します。Removes a previously granted or denied permission.

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

構文Syntax

-- Syntax for SQL Server and Azure SQL Database  
  
-- Simplified syntax for REVOKE  
REVOKE [ GRANT OPTION FOR ]  
      {   
        [ ALL [ PRIVILEGES ] ]  
        |  
                permission [ ( column [ ,...n ] ) ] [ ,...n ]  
      }  
      [ ON [ class :: ] securable ]   
      { TO | FROM } principal [ ,...n ]   
      [ CASCADE] [ AS principal ]  
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse  
  
REVOKE   
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    [ FROM | TO ] principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class_type> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

注意

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

引数Arguments

GRANT OPTION FORGRANT OPTION FOR
指定した権限を与える許可を取り消すことを示します。Indicates that the ability to grant the specified permission will be revoked. CASCADE 引数を使用する場合、これは必須です。This is required when you are using the CASCADE argument.

重要

指定した権限が GRANT オプションなしでプリンシパルに許可されている場合は、その権限自体が取り消されます。If the principal has the specified permission without the GRANT option, the permission itself will be revoked.

ALLALL
適用対象: SQL Server 2008SQL Server 2008 以降Applies to: SQL Server 2008SQL Server 2008 and later

このオプションでは、可能な権限がすべて取り消されるわけではありません。This option does not revoke all possible permissions. ALL を指定すると、次の権限が取り消されます。Revoking ALL is equivalent to revoking 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.

注意

REVOKE ALL 構文は非推奨です。The REVOKE ALL syntax is deprecated. この機能は、Microsoft SQL Server の将来のバージョンで削除されます。This feature will 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.代わりに特定の権限を取り消してください。Revoke 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 topics listed in Securable-specific Syntax later in this topic.

columncolumn
権限を取り消すテーブルの列の名前を指定します。Specifies the name of a column in a table on which permissions are being revoked. かっこが必要です。The parentheses are required.

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

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

TO | FROM principalTO | FROM principal
プリンシパルの名前です。Is the name of a principal. セキュリティ保護可能なリソースに対する権限を取り消すことのできるプリンシパルは、そのリソースによって異なります。The principals from which permissions on a securable can be revoked vary, depending on the securable. 有効な組み合わせの詳細については、後の「セキュリティ保護可能なリソース別の構文」の一覧を参照してください。For more information about valid combinations, see the topics listed in Securable-specific Syntax later in this topic.

CASCADECASCADE
このプリンシパルによって権限が許可されている他のプリンシパルからも、同じ権限が取り消されることを示します。Indicates that the permission that is being revoked is also revoked from other principals to which it has been granted by this principal. CASCADE 引数を使用する場合は、GRANT OPTION FOR 引数も指定する必要があります。When you are using the CASCADE argument, you must also include the GRANT OPTION FOR argument.

注意事項

WITH GRANT OPTION で許可されている権限を CASCADE で取り消すと、その権限の GRANT および DENY の両方が取り消されます。A cascaded revocation of a permission granted WITH GRANT OPTION will revoke both GRANT and DENY of that permission.

AS principalAS principal
自分以外のプリンシパルによって付与された権限を取り消すことを示すには、AS 句を使用します。Use the AS principal clause to indicate that you are revoking a permission that was granted by a principal other than you. たとえば、ユーザー Mary の principal_id が 12、ユーザー Raul の principal_id が 15 であるとします。For example, presume that user Mary is principal_id 12 and user Raul is principal_id 15. Mary と Raul はどちらも、Steven という名前のユーザーに同じ権限を付与します。Both Mary and Raul grant a user named Steven the same permission. sys.database_permissions テーブルでは、同じ権限が 2 回表示されますが、grantor_prinicpal_id の値は異なります。The sys.database_permissions table will indicate the permissions twice but they will each have a different grantor_principal_id value. Mary は、AS RAUL 句を使って、Raul の権限付与を取り消すことができます。Mary could revoke the permission using the AS RAUL clause to remove Raul's grant of the permission.

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

解説Remarks

REVOKE ステートメントの完全な構文は複雑です。The full syntax of the REVOKE statement is complex. 前の構文ダイアグラムは、構造をわかりやすくするために簡略化されています。The syntax diagram above was simplified to draw attention to its structure. 特定のセキュリティ保護可能なリソースに対する権限を取り消すための完全な構文については、後の「セキュリティ保護可能なリソース別の構文」の一覧を参照してください。Complete syntax for revoking permissions on specific securables is described in the topics listed in Securable-specific Syntax later in this topic.

許可された権限を取り消す場合は REVOKE ステートメントを使用します。また、GRANT によってプリンシパルに特定の権限が許可されないようにするには DENY ステートメントを使用します。The REVOKE statement can be used to remove granted permissions, and the DENY statement can be used to prevent a principal from gaining a specific permission through a GRANT.

権限を許可すると、指定したセキュリティ保護可能なリソースに対する権限の DENY または REVOKE は削除されます。Granting a permission removes DENY or REVOKE of that permission on the specified securable. 対象のセキュリティ保護可能なリソースの上位スコープで同じ権限が拒否されている場合は、その DENY ステートメントが優先されますが、If the same permission is denied at a higher scope that contains the securable, the DENY takes precedence. ただし、上位スコープで許可されている権限を取り消そうとしても、その REVOKE ステートメントは優先されません。However, revoking the granted permission at a higher scope does not take precedence.

注意事項

テーブル レベルの 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 backward compatibility. 将来のリリースでは削除される予定です。It will be removed in a future release.

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

GRANT OPTION で権限が許可されたプリンシパルから権限を取り消すときに CASCADE を指定しない場合、REVOKE ステートメントは失敗します。The REVOKE statement will fail if CASCADE is not specified when you are revoking a permission from a principal that was granted that permission with GRANT OPTION specified.

アクセス許可Permissions

セキュリティ保護可能なリソースに対して CONTROL 権限があるプリンシパルは、そのセキュリティ保護可能なリソースの権限を取り消すことができます。Principals with CONTROL permission on a securable can revoke permission on that securable. オブジェクトの所有者は、所有するオブジェクトに対する権限を取り消すことができます。Object owners can revoke permissions on the objects they own.

sysadmin 固定サーバー ロールのメンバーなど、CONTROL SERVER 権限が許可されているユーザーは、サーバー内のセキュリティ保護可能なリソースに対する権限を取り消すことができます。Grantees of CONTROL SERVER permission, such as members of the sysadmin fixed server role, can revoke any permission on any securable in the server. db_owner 固定データベース ロールのメンバーなど、データベースに対する CONTROL 権限が許可されているユーザーは、データベース内のセキュリティ保護可能なリソースに対する権限を取り消すことができます。Grantees of CONTROL permission on a database, such as members of the db_owner fixed database role, can revoke any permission on any securable in the database. スキーマに対する CONTROL 権限が許可されているユーザーは、スキーマ内のオブジェクトに対する権限を取り消すことができます。Grantees of CONTROL permission on a schema can revoke any permission on any object within the schema.

セキュリティ保護可能なリソース別の構文Securable-specific Syntax

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

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

参照See Also

権限の階層 (データベース エンジン) Permissions Hierarchy (Database Engine)
DENY (Transact-SQL) DENY (Transact-SQL)
GRANT (Transact-SQL) GRANT (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)