REVOKE 資料庫權限 (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 的 SQL 端點分析 Microsoft Fabric 的倉儲
撤銷授與及拒絕的資料庫權限。
Transact-SQL 語法慣例 (部分機器翻譯)
語法
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 之權限的串聯撤銷,會同時撤銷該權限的 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 ANY COLUMN ENCRYPTION KEY | 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 Database。 |
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 ANY EXTERNAL DATA SOURCE | ALTER | CONTROL SERVER |
ALTER ANY EXTERNAL FILE FORMAT | ALTER | CONTROL SERVER |
ALTER ANY EXTERNAL LIBRARY 適用於:SQL Server 2017 (14.x)。 |
CONTROL | CONTROL SERVER |
ALTER ANY FULLTEXT CATALOG | ALTER | CONTROL SERVER |
ALTER ANY MASK | 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 |
ALTER ANY SECURITY POLICY 適用於:Azure SQL Database。 |
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 |
刪除 | CONTROL | CONTROL SERVER |
執行 CREATE 陳述式之前,請先執行 | CONTROL | CONTROL SERVER |
執行任何外部腳本 適用於:SQL Server 2016 (13.x)。 |
CONTROL | CONTROL SERVER |
Insert | CONTROL | CONTROL SERVER |
KILL DATABASE CONNECTION 適用於:Azure SQL Database。 |
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 |
UNMASK | CONTROL | CONTROL SERVER |
UPDATE | CONTROL | CONTROL SERVER |
VIEW ANY COLUMN ENCRYPTION KEY DEFINITION | CONTROL | VIEW ANY DEFINITION |
VIEW ANY COLUMN MASTER KEY DEFINITION | CONTROL | VIEW ANY DEFINITION |
VIEW DATABASE STATE | CONTROL | VIEW SERVER STATE |
VIEW DEFINITION | CONTROL | VIEW ANY DEFINITION |
權限
執行這個陳述式的主體 (或指定了 AS 選項的主體) 必須具有資料庫的 CONTROL 權限,或是具有隱含資料庫 CONTROL 權限的更高權限。
如果是使用 AS 選項,指定的主體必須擁有資料庫。
範例
A. 撤銷建立憑證的權限
下列範例會從使用者 CREATE CERTIFICATE
撤銷資料庫 AdventureWorks2022
的 MelanieK
權限。
適用於:SQL Server 2008 (10.0.x) 和更新版本
USE AdventureWorks2022;
REVOKE CREATE CERTIFICATE FROM MelanieK;
GO
B. 從應用程式角色撤銷 REFERENCES 權限
下列範例會從應用程式角色 REFERENCES
撤銷資料庫 AdventureWorks2022
的 AuditMonitor
權限。
適用於:SQL Server 2008 (10.0.x) 和更新版本,以及 SQL Database
USE AdventureWorks2022;
REVOKE REFERENCES FROM AuditMonitor;
GO
C. 撤銷具有 CASCADE 的 VIEW DEFINITION
下列範例會從使用者 VIEW DEFINITION
以及從 AdventureWorks2022
已對其授與 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)
權限 (資料庫引擎)
主體 (資料庫引擎)