適用於:SQL Server
Azure SQL Database
Azure SQL 受控執行個體
Azure Synapse Analytics
Microsoft Fabric 中的 SQL 分析端點
Microsoft Fabric 中的倉庫
Microsoft Fabric 中的 SQL 資料庫
移除先前授與或拒絕的權限。
Syntax
SQL Server、Azure SQL 資料庫 和 Fabric SQL 資料庫的語法
-- Simplified syntax for REVOKE
REVOKE [ GRANT OPTION FOR ]
{
[ ALL [ PRIVILEGES ] ]
|
permission [ ( column [ ,...n ] ) ] [ ,...n ]
}
[ ON [ class :: ] securable ]
{ TO | FROM } principal [ ,...n ]
[ CASCADE] [ AS principal ]
Azure Synapse Analytics and Microsoft Fabric 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
}
Arguments
GRANT 選項
表示將撤銷授與指定權限的能力。 這在您使用 CASCADE 引數時是必須的。
Important
如果負責人擁有指定的許可但沒有選項 GRANT ,該許可本身也會被撤銷。
ALL
適用於:SQL Server 2008 (10.0.x) 和更新版本
這個選項不會撤銷所有可能的權限。 撤銷 ALL 等同於撤銷下列權限。
若可保障資產為資料庫,ALL 表示 BACKUP、 LOG、 DATABASE、 BACKUP、 CREATE DATABASE、 CREATE DEFAULTCREATE FUNCTIONCREATE PROCEDURECREATE RULE。 CREATE TABLECREATE VIEW
如果安全性實體是純量函數,ALL 表示 EXECUTE 和 REFERENCES。
若可保障函數為表值函數,ALL 表示 DELETE、 INSERT、 REFERENCES、SELECT 及 UPDATE。
如果安全性實體是預存程序,ALL 表示 EXECUTE。
若可保障物為資料表,ALL 表示 DELETE、 INSERT、 參考、SELECT 及 UPDATE。
若可保障物為視圖,則 ALL 代表 DELETE、 INSERT、 、 REFERENCES、SELECT 及 UPDATE。
Note
REVOKE ALL 語法已被棄用。 SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 改為撤銷特定的權限。
PRIVILEGES
為符合 ISO 而包含這個項目。 不會變更 ALL 的行為。
permission
這是權限的名稱。 本主題稍後安全性實體特定語法所列的幾個主題,會描述權限與安全性實體的有效對應。
column
指定正在撤銷權限的資料表中資料行的名稱。 它必須用括號括住。
class
指定正在撤銷權限之安全性實體的類別。 範圍限定詞 :: 為必要項目。
securable
指定正在撤銷權限的安全性實體。
TO |FROM 主體
這是主體的名稱。 可以撤銷安全性實體權限的主體,隨著安全性實體而不同。 如需有效組合的詳細資訊,請參閱本主題稍後安全性實體特定語法中所列的主題。
CASCADE
指出目前正在撤銷的權限,也會從它被這個主體所授與的其他主體一起撤銷。 使用 CASCADE 參數時,也必須包含 GRANT OPTION FOR 參數。
Caution
若連環撤銷已授予的WITH GRANT OPTION許可,將同時撤銷GRANTDENY該許可。
副 校長
您可使用 AS principal 子句,來表示要撤銷由您以外的主體所授與的權限。 例如,假設使用者 Mary 是 principal_id 12;使用者 Raul 是 principal_id 15。 Mary 和 Raul 都授與 Steven 這個使用者相同的權限。 sys.database_permissions 資料表會指出權限兩次,但每個權限都各有不同的 grantor_principal_id 值。 Mary 可以使用 AS RAUL 子句撤銷權限,以移除 Raul 的授權。
在此陳述式中使用 AS 不代表能模擬其他使用者。
Remarks
語句的完整語法 REVOKE 很複雜。 上方的語法圖已簡化,以強調其結構。 本主題稍後安全性實體特定語法所列的幾個主題,會描述撤銷特定安全性實體權限的完整語法。
REVOKE語句可用來移除授與的許可權,而 DENY 語句可用來防止主體透過 GRANT取得特定許可權。
授與許可權會移除 DENY 指定安全性實體的許可權或 REVOKE 該許可權。 如果在包含安全性實體的較高範圍中拒絕相同的許可權, DENY 則優先使用 。 然而,在更高範圍撤銷授與權限的優先順序並不會比較高。
Caution
資料表層權 DENY 不會優先於資料行層級 GRANT。 保留權限階層中這項不一致的目的,是為了與舊版相容。 未來的版本將予以移除。
sp_helprotect 系統預存程序會報告資料庫層級安全性實體的權限。
如果你在撤銷已授權且指定 REVOKE OPTION 的主體授權時,未指定 CASCADE,該GRANT陳述將失敗。
Permissions
具有安全性實體之 CONTROL 權限的主體可以撤銷安全性實體的權限。 物件擁有者可以撤銷他們所擁有之物件的權限。
CONTROL SERVER 權限的被授與者 (例如系統管理員 (sysadmin) 固定伺服器角色的成員),可以撤銷伺服器中任何安全性實體的任何權限。 資料庫之 CONTROL 權限的被授與者 (例如 db_owner 固定資料庫角色的成員),可以撤銷資料庫中任何安全性實體的任何權限。 結構描述之 CONTROL 權限的被授與者,可以撤銷結構描述中任何物件的任何權限。
可安全專用語法
下表列出安全性實體和描述安全性實體特定語法的主題。
Examples
A. 授與及撤銷
適用範圍: SQL Server、SQL Database
下列範例會建立結構描述、自主資料庫使用者,以及使用者資料庫的新角色。 它會將使用者新增至角色、將結構描述的 SELECT 權限授與角色,然後移除 (REVOKE) 該角色的權限。
CREATE SCHEMA Sales;
GO
CREATE USER Joe without login;
GO
CREATE ROLE Vendors;
GO
ALTER ROLE Vendors ADD MEMBER Joe;
GO
GRANT SELECT ON SCHEMA :: Sales TO Vendors;
GO
REVOKE SELECT ON SCHEMA :: Sales TO Vendors;
GO