REVOKE データベース権限(Transact-SQL)

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

データベースに対して許可および拒否された権限を取り消します。

Transact-SQL 構文表記規則

Syntax

REVOKE [ GRANT OPTION FOR ] <permission> [ ,...n ]    
    { TO | FROM } <database_principal> [ ,...n ]   
        [ CASCADE ]  
    [ AS <database_principal> ]  
  
<permission> ::=    
permission | ALL [ PRIVILEGES ]  
  
<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
データベースで取り消すことができる権限を指定します。 権限の一覧については、後の「解説」を参照してください。

ALL
このオプションでは、可能な権限がすべて取り消されるわけではありません。 すべての権限を取り消すことは、 BACKUPDATABASE、 BACKUP LOG、 CREATE DATABASE、 CREATE DEFAULT、 CREATE FUNCTION、 CREATE PROCEDURE、 CREATE RULE、 CREATE TABLE、 CREATE VIEWの権限を取り消すことと同等です。

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

GRANT オプション
指定した権限を他のプリンシパルに許可するための権利が、取り消されることを示します。 権限自体は取り消されません。

Important

もし校長が指定された許可を得て GRANT オプションがない場合、その許可自体は取り消されます。

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

Caution

WITH GRANT OPTIONで付与された許可の連鎖的な取り消しは、その許可の GRANT と DENY の両方を取り消します。

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

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

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

Application_role
適用対象: SQL Server 2008 (10.0.x)、SQL Database

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

Database_user_mapped_to_Windows_User
適用対象: SQL Server 2008 (10.0.x) 以降

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

Database_user_mapped_to_Windows_Group
適用対象: SQL Server 2008 (10.0.x) 以降

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

Database_user_mapped_to_certificate
適用対象: SQL Server 2008 (10.0.x) 以降

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

Database_user_mapped_to_asymmetric_key
適用対象: SQL Server 2008 (10.0.x) 以降

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

Database_user_with_no_login
対応するサーバー レベルのプリンシパルがないデータベース ユーザーを指定します。

Remarks

GRANTオプションが指定された権限を付与されたプリンシパルへの許可を取り消す際にCASCADEが指定されていないと、文は失敗します。

データベースは、セキュリティ保護可能なリソースで、権限の階層で親となっているサーバーに含まれています。 次の表に、データベースで取り消すことができる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。

データベース許可 権限が含まれるデータベース権限 権限が含まれるサーバー権限
一括操作 DATABASE 管理する
適用対象: SQL Database。
CONTROL 制御サーバー
ALTER CONTROL "任意の DATABASE を変更"
"任意の APPLICATION ROLE を変更" ALTER 制御サーバー
"任意の ASSEMBLY を変更" ALTER 制御サーバー
"任意の ASYMMETRIC KEY を変更" ALTER 制御サーバー
"任意の CERTIFICATE を変更" ALTER 制御サーバー
"任意の COLUMN ENCRYPTION KEY を変更" ALTER 制御サーバー
COLUMN MASTER KEY定義を変える ALTER 制御サーバー
"任意の CONTRACT を変更" ALTER 制御サーバー
監査 DATABASE を変更する ALTER "任意の SERVER AUDIT を変更"
DDL DATABASE 変更 TRIGGER ALTER 制御サーバー
ALTER ANY(変えて) DATABASEEVENT NOTIFICATION ALTER "任意の EVENT NOTIFICATION を変更"
ALTER ANY(変えて) DATABASEEVENT SESSION
適用対象: Azure SQL データベース
ALTER "任意の EVENT SESSION を変更"
"任意の DATABASE SCOPED CONFIGURATION を変更"
適用対象: SQL Server 2016 (13.x) 以降、SQL Database。
CONTROL 制御サーバー
任意のデータスペースを変更する ALTER 制御サーバー
"任意の EXTERNAL DATA SOURCE を変更" ALTER 制御サーバー
"任意の EXTERNAL FILE FORMAT を変更" ALTER 制御サーバー
"任意の EXTERNAL LIBRARY を変更"
適用対象: SQL Server 2017 (14.x)
CONTROL 制御サーバー
"任意の FULLTEXT CATALOG を変更" ALTER 制御サーバー
任意のマスクを変更します。 CONTROL 制御サーバー
"任意の MESSAGE TYPE を変更" ALTER 制御サーバー
"任意の REMOTE SERVICE BINDING を変更" ALTER 制御サーバー
"任意の ROLE を変更" ALTER 制御サーバー
"任意の ROUTE を変更" ALTER 制御サーバー
"任意の SCHEMA を変更" ALTER 制御サーバー
"任意の SECURITY POLICY を変更"
適用対象: Azure SQL データベース
CONTROL 制御サーバー
"任意の SERVICE を変更" ALTER 制御サーバー
"任意の SYMMETRIC KEY を変更" ALTER 制御サーバー
"任意の USER を変更" ALTER 制御サーバー
AUTHENTICATE CONTROL サーバーの認証
BACKUP DATABASE CONTROL 制御サーバー
BACKUP ログ CONTROL 制御サーバー
CHECKPOINT CONTROL 制御サーバー
CONNECT コネクト・レプリケーション 制御サーバー
コネクト・レプリケーション CONTROL 制御サーバー
CONTROL CONTROL 制御サーバー
CREATE AGGREGATE ALTER 制御サーバー
CREATE ASSEMBLY "任意の ASSEMBLY を変更" 制御サーバー
CREATE ASYMMETRIC KEY "任意の ASYMMETRIC KEY を変更" 制御サーバー
CREATE CERTIFICATE "任意の CERTIFICATE を変更" 制御サーバー
CREATE CONTRACT "任意の CONTRACT を変更" 制御サーバー
CREATE DATABASE CONTROL 何でも作成してください DATABASE
CREATE DATABASE Ddl EVENT NOTIFICATION ALTER ANY(変えて) DATABASEEVENT NOTIFICATION DDLを作成 EVENT NOTIFICATION
CREATE DEFAULT ALTER 制御サーバー
CREATE FULLTEXT CATALOG "任意の FULLTEXT CATALOG を変更" 制御サーバー
CREATE FUNCTION ALTER 制御サーバー
CREATE MESSAGE TYPE "任意の MESSAGE TYPE を変更" 制御サーバー
CREATE PROCEDURE ALTER 制御サーバー
CREATE QUEUE ALTER 制御サーバー
CREATE REMOTE SERVICE BINDING "任意の REMOTE SERVICE BINDING を変更" 制御サーバー
CREATE ROLE "任意の ROLE を変更" 制御サーバー
CREATE ROUTE "任意の ROUTE を変更" 制御サーバー
CREATE RULE ALTER 制御サーバー
CREATE SCHEMA "任意の SCHEMA を変更" 制御サーバー
CREATE SERVICE "任意の SERVICE を変更" 制御サーバー
CREATE SYMMETRIC KEY "任意の SYMMETRIC KEY を変更" 制御サーバー
CREATE SYNONYM ALTER 制御サーバー
CREATE TABLE ALTER 制御サーバー
CREATE TYPE ALTER 制御サーバー
CREATE VIEW ALTER 制御サーバー
CREATE XML SCHEMA COLLECTION ALTER 制御サーバー
DELETE CONTROL 制御サーバー
EXECUTE CONTROL 制御サーバー
EXECUTE ANY EXTERNAL SCRIPT
適用対象: SQL Server 2016 (13.x)
CONTROL 制御サーバー
INSERT CONTROL 制御サーバー
接続 DATABASE 切断
適用対象: Azure SQL データベース
CONTROL 任意の接続を変更する
REFERENCES CONTROL 制御サーバー
SELECT CONTROL 制御サーバー
SHOWPLAN CONTROL ALTER TRACE(トレースの変更権限)
クエリ通知をサブスクライブする CONTROL 制御サーバー
所有権 CONTROL 制御サーバー
UNMASK CONTROL 制御サーバー
UPDATE CONTROL 制御サーバー
VIEW 任意の COLUMN ENCRYPTION KEY 定義 CONTROL VIEW 任意の定義
VIEW 任意の COLUMN MASTER KEY 定義 CONTROL VIEW 任意の定義
VIEW DATABASE 州 CONTROL VIEW サーバーの状態
VIEW 定義 CONTROL VIEW 任意の定義

Permissions

このステートメントを実行するプリンシパル (または AS オプションで指定したプリンシパル) には、データベースに対する CONTROL 権限、またはデータベースに対する CONTROL 権限を暗黙的に許可する上位レベルの権限が与えられている必要があります。

AS オプションを使用する場合、指定するプリンシパルはデータベースを所有している必要があります。

Examples

A. 証明書を作成する権限を取り消す

次の例では、CREATE CERTIFICATE データベースに対する AdventureWorks2025 権限を、ユーザー MelanieK から取り消します。

適用対象: SQL Server 2008 (10.0.x) 以降

USE AdventureWorks2022;  
REVOKE CREATE CERTIFICATE FROM MelanieK;  
GO  

B. REFERENCES 権限をアプリケーション ロールから取り消す

次の例では、REFERENCES データベースに対する AdventureWorks2025 権限を、アプリケーション ロール AuditMonitor から取り消します。

適用対象: SQL Server 2008 (10.0.x)、SQL Database

USE AdventureWorks2022;  
REVOKE REFERENCES FROM AuditMonitor;  
GO  

C. カスケードによる VIEW 定義の撤回

次の例では、VIEW DEFINITION データベースに対する AdventureWorks2025 権限を、ユーザー CarmineEs と、CarmineEsVIEW DEFINITION 権限を許可したすべてのプリンシパルから取り消します。

USE AdventureWorks2022;  
REVOKE VIEW DEFINITION FROM CarmineEs CASCADE;  
GO  

こちらもご覧ください

sys.database_permissions(Transact-SQL)
sys.database_principals(Transact-SQL)
GRANT データベース権限 (Transact-SQL)
DENY データベース権限 (Transact-SQL)
権限 (データベース エンジン)
プリンシパル (データベース エンジン)