REVOKE (データベースの権限の取り消し) (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric Warehouse Microsoft Fabric SQL Database
データベースに対して許可および拒否された権限を取り消します。
構文
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
引数
permission
データベースで取り消すことができる権限を指定します。 権限の一覧については、後の「解説」を参照してください。
ALL
このオプションでは、可能な権限がすべて取り消されるわけではありません。 ALL を指定した場合は、次の権限を取り消すことになります:BACKUP DATABASE、BACKUP LOG、CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE、CREATE VIEW。
PRIVILEGES
ISO 準拠のために用意されています。 ALL の動作は変更されません。
GRANT OPTION
指定した権限を他のプリンシパルに許可するための権利が、取り消されることを示します。 権限自体は取り消されません。
重要
指定した権限が GRANT オプションなしでプリンシパルに許可されている場合は、その権限自体が取り消されます。
CASCADE
このプリンシパルによって権限が許可または拒否されている他のプリンシパルからも、同じ権限が取り消されることを示します。
注意事項
WITH GRANT OPTION で許可されている権限を CASCADE で取り消すと、その権限の 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
対応するサーバー レベルのプリンシパルがないデータベース ユーザーを指定します。
解説
GRANT OPTION で権限が許可されたプリンシパルに対する権限を取り消すときに CASCADE を指定しない場合、ステートメントは失敗します。
データベースは、セキュリティ保護可能なリソースで、権限の階層で親となっているサーバーに含まれています。 次の表に、データベースで取り消すことができる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。
データベース権限 | 権限が含まれるデータベース権限 | 権限が含まれるサーバー権限 |
---|---|---|
ADMINISTER DATABASE BULK OPERATIONS 適用対象: SQL Database。 |
CONTROL | CONTROL SERVER |
ALTER | CONTROL | ALTER ANY DATABASE |
ALTER ANY APPLICATION ROLE | ALTER | CONTROL SERVER |
ALTER ANY ASSEMBLY | ALTER | CONTROL SERVER |
ALTER ANY ASYMMETRIC KEY | ALTER | CONTROL SERVER |
ALTER ANY CERTIFICATE | ALTER | CONTROL SERVER |
任意の列の暗号化キーを変更します。 | ALTER | CONTROL SERVER |
ALTER ANY COLUMN MASTER KEY DEFINITION | ALTER | CONTROL SERVER |
ALTER ANY CONTRACT | ALTER | CONTROL SERVER |
ALTER ANY DATABASE AUDIT | ALTER | ALTER ANY SERVER AUDIT |
ALTER ANY DATABASE DDL TRIGGER | ALTER | CONTROL SERVER |
ALTER ANY DATABASE EVENT NOTIFICATION | ALTER | ALTER ANY EVENT NOTIFICATION |
ALTER ANY DATABASE EVENT SESSION 適用対象: Azure SQL データベース |
ALTER | ALTER ANY EVENT SESSION |
ALTER ANY DATABASE SCOPED CONFIGURATION 適用対象: SQL Server 2016 (13.x) 以降、SQL Database。 |
CONTROL | CONTROL SERVER |
ALTER ANY DATASPACE | ALTER | CONTROL SERVER |
すべての外部データ ソースを変更します。 | ALTER | CONTROL SERVER |
任意の外部のファイル形式を変更します。 | ALTER | CONTROL SERVER |
ALTER ANY EXTERNAL LIBRARY 適用対象: SQL Server 2017 (14.x) |
CONTROL | CONTROL SERVER |
ALTER ANY FULLTEXT CATALOG | ALTER | CONTROL SERVER |
任意のマスクを変更します。 | CONTROL | CONTROL SERVER |
ALTER ANY MESSAGE TYPE | ALTER | CONTROL SERVER |
ALTER ANY REMOTE SERVICE BINDING | ALTER | CONTROL SERVER |
ALTER ANY ROLE | ALTER | CONTROL SERVER |
ALTER ANY ROUTE | ALTER | CONTROL SERVER |
ALTER ANY SCHEMA | ALTER | CONTROL SERVER |
すべてのセキュリティ ポリシーを変更します。 適用対象: Azure SQL データベース |
CONTROL | CONTROL SERVER |
ALTER ANY SERVICE | ALTER | CONTROL SERVER |
ALTER ANY SYMMETRIC KEY | ALTER | CONTROL SERVER |
ALTER ANY USER | ALTER | CONTROL SERVER |
AUTHENTICATE | CONTROL | AUTHENTICATE SERVER |
BACKUP DATABASE | CONTROL | CONTROL SERVER |
BACKUP LOG | CONTROL | CONTROL SERVER |
CHECKPOINT | CONTROL | CONTROL SERVER |
CONNECT | CONNECT REPLICATION | CONTROL SERVER |
CONNECT REPLICATION | CONTROL | CONTROL SERVER |
CONTROL | CONTROL | CONTROL SERVER |
CREATE AGGREGATE | ALTER | CONTROL SERVER |
CREATE ASSEMBLY | ALTER ANY ASSEMBLY | CONTROL SERVER |
CREATE ASYMMETRIC KEY | ALTER ANY ASYMMETRIC KEY | CONTROL SERVER |
CREATE CERTIFICATE | ALTER ANY CERTIFICATE | CONTROL SERVER |
CREATE CONTRACT | ALTER ANY CONTRACT | CONTROL SERVER |
CREATE DATABASE | CONTROL | CREATE ANY DATABASE |
CREATE DATABASE DDL EVENT NOTIFICATION | ALTER ANY DATABASE EVENT NOTIFICATION | CREATE DDL EVENT NOTIFICATION |
CREATE DEFAULT | ALTER | CONTROL SERVER |
CREATE FULLTEXT CATALOG | ALTER ANY FULLTEXT CATALOG | CONTROL SERVER |
CREATE FUNCTION | ALTER | CONTROL SERVER |
CREATE MESSAGE TYPE | ALTER ANY MESSAGE TYPE | CONTROL SERVER |
CREATE PROCEDURE | ALTER | CONTROL SERVER |
CREATE QUEUE | ALTER | CONTROL SERVER |
CREATE REMOTE SERVICE BINDING | ALTER ANY REMOTE SERVICE BINDING | CONTROL SERVER |
CREATE ROLE | ALTER ANY ROLE | CONTROL SERVER |
CREATE ROUTE | ALTER ANY ROUTE | CONTROL SERVER |
CREATE RULE | ALTER | CONTROL SERVER |
CREATE SCHEMA | ALTER ANY SCHEMA | CONTROL SERVER |
CREATE SERVICE | ALTER ANY SERVICE | CONTROL SERVER |
CREATE SYMMETRIC KEY | ALTER ANY SYMMETRIC KEY | CONTROL SERVER |
CREATE SYNONYM | ALTER | CONTROL SERVER |
CREATE TABLE | ALTER | CONTROL SERVER |
CREATE TYPE | ALTER | CONTROL SERVER |
CREATE VIEW | ALTER | CONTROL SERVER |
CREATE XML SCHEMA COLLECTION | ALTER | CONTROL SERVER |
DELETE | CONTROL | CONTROL SERVER |
EXECUTE | CONTROL | CONTROL SERVER |
EXECUTE ANY EXTERNAL SCRIPT 適用対象: SQL Server 2016 (13.x) |
CONTROL | CONTROL SERVER |
INSERT | CONTROL | CONTROL SERVER |
KILL DATABASE CONNECTION 適用対象: Azure SQL データベース |
CONTROL | ALTER ANY CONNECTION |
REFERENCES | CONTROL | CONTROL SERVER |
SELECT | CONTROL | CONTROL SERVER |
SHOWPLAN | CONTROL | ALTER TRACE |
SUBSCRIBE QUERY NOTIFICATIONS | CONTROL | CONTROL SERVER |
TAKE OWNERSHIP | CONTROL | CONTROL SERVER |
マスク解除します。 | CONTROL | CONTROL SERVER |
UPDATE | CONTROL | CONTROL SERVER |
列の暗号化キーの定義を表示します。 | CONTROL | VIEW ANY DEFINITION |
任意の列のマスター_キーの定義の表示 | CONTROL | VIEW ANY DEFINITION |
VIEW DATABASE STATE | CONTROL | VIEW SERVER STATE |
VIEW DEFINITION | CONTROL | VIEW ANY DEFINITION |
アクセス許可
このステートメントを実行するプリンシパル (または AS オプションで指定したプリンシパル) には、データベースに対する CONTROL 権限、またはデータベースに対する CONTROL 権限を暗黙的に許可する上位レベルの権限が与えられている必要があります。
AS オプションを使用する場合、指定するプリンシパルはデータベースを所有している必要があります。
例
A. 証明書を作成する権限を取り消す
次の例では、AdventureWorks2022
データベースに対する CREATE CERTIFICATE
権限を、ユーザー MelanieK
から取り消します。
適用対象: SQL Server 2008 (10.0.x) 以降
USE AdventureWorks2022;
REVOKE CREATE CERTIFICATE FROM MelanieK;
GO
B. REFERENCES 権限をアプリケーション ロールから取り消す
次の例では、AdventureWorks2022
データベースに対する REFERENCES
権限を、アプリケーション ロール AuditMonitor
から取り消します。
適用対象: SQL Server 2008 (10.0.x)、SQL Database
USE AdventureWorks2022;
REVOKE REFERENCES FROM AuditMonitor;
GO
C. CASCADE を指定して VIEW DEFINITION を取り消す
次の例では、AdventureWorks2022
データベースに対する VIEW DEFINITION
権限を、ユーザー CarmineEs
と、CarmineEs
が VIEW 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)
権限 (データベース エンジン)
プリンシパル (データベース エンジン)