本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
REVOKE
從使用者或角色移除存取許可,例如建立、捨棄或更新資料表的許可。
您只能使用 ON SCHEMA語法對資料庫使用者和角色進行外部結構描述的 GRANT或 REVOKEUSAGE許可。將 ON EXTERNALSCHEMA與 搭配使用時 AWS Lake Formation,您只能使用 GRANT和 AWS Identity and Access Management (IAM) 角色的REVOKE許可。如需許可的清單,請參閱語法。
對於預存程序,PUBLIC依預設會將 USAGE ON LANGUAGEplpgsql
許可授予 。EXECUTE 根據預設,ON PROCEDURE許可只會授予擁有者和超級使用者。
在REVOKE命令中指定您要移除的許可。若要授予許可,請使用 GRANT 命令。
語法
REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | DROP | REFERENCES | ALTER | TRUNCATE } [,...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | TEMPORARY | TEMP | ALTER } [,...] | ALL [ PRIVILEGES ] } ON DATABASE db_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | USAGE | ALTER } [,...] | ALL [ PRIVILEGES ] } ON SCHEMA schema_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] EXECUTE ON FUNCTION function_name ( [ [ argname ] argtype [, ...] ] ) [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { EXECUTE } [,...] | ALL [ PRIVILEGES ] } ON PROCEDURE procedure_name ( [ [ argname ] argtype [, ...] ] ) [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] USAGE ON LANGUAGE language_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ]
下列語法適用於 Amazon Redshift 資料表和檢視上的資料欄層級許可。
REVOKE { { SELECT | UPDATE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) } ON { [ TABLE ] table_name [, ...] } FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ]
以下是從具有指定角色的使用者和群組撤銷ASSUMEROLE許可的語法。
REVOKE ASSUMEROLE ON { 'iam_role' [, ...] | default | ALL } FROM { user_name | ROLE role_name | GROUP group_name | PUBLIC } [, ...] FOR { ALL | COPY | UNLOAD | EXTERNAL FUNCTION | CREATE MODEL }
以下是 Redshift Spectrum 與 Lake Formation 整合的語法。
REVOKE [ GRANT OPTION FOR ] { SELECT | ALL [ PRIVILEGES ] } ( column_list ) ON EXTERNAL TABLE schema_name.table_name FROM { IAM_ROLE iam_role } [, ...] REVOKE [ GRANT OPTION FOR ] { { SELECT | ALTER | DROP | DELETE | INSERT } [, ...] | ALL [ PRIVILEGES ] } ON EXTERNAL TABLE schema_name.table_name [, ...] FROM { { IAM_ROLE iam_role } [, ...] | PUBLIC } REVOKE [ GRANT OPTION FOR ] { { CREATE | ALTER | DROP } [, ...] | ALL [ PRIVILEGES ] } ON EXTERNAL SCHEMA schema_name [, ...] FROM { IAM_ROLE iam_role } [, ...]
生產者端資料共用權限
以下是使用 從使用者ALTER或角色REVOKE移除或SHARE許可的語法。權限已被撤銷的使用者無法再變更資料共用,或將使用權授予取用者。
REVOKE { ALTER | SHARE } ON DATASHARE datashare_name FROM { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP
group_name
| PUBLIC } [, ...]
以下是使用 REVOKE移除取用者對資料共用存取權的語法。
REVOKE USAGE ON DATASHARE datashare_name FROM NAMESPACE 'namespaceGUID' [, ...] | ACCOUNT 'accountnumber' [ VIA DATA CATALOG ] [, ...]
以下是將資料共用使用權從 Lake Formation 帳戶撤銷的範例。
REVOKE USAGE ON DATASHARE salesshare FROM ACCOUNT '123456789012' VIA DATA CATALOG;
取用者端資料共用權限
以下是從資料共用建立之特定資料庫或結構描述的資料共用使用許可REVOKE語法。從使用 WITHPERMISSIONS子句建立的資料庫撤銷使用許可不會撤銷您授予使用者或角色的任何其他許可,包括授予基礎物件的物件層級許可。如果您重新授予該使用者或角色的使用權限,他們會保留他們在您撤銷使用權之前擁有的其他所有權限。
REVOKE USAGE ON { DATABASE shared_database_name [, ...] | SCHEMA shared_schema} FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
範圍許可可讓您將許可授予資料庫或結構描述內類型的所有物件的使用者或角色。具有範圍許可的使用者和角色在資料庫或結構描述內所有目前和未來物件具有指定的許可。
您可以在 中檢視資料庫層級範圍許可的範圍SVV_DATABASE_PRIVILEGES。您可以在 中檢視結構描述層級範圍許可的範圍SVV_SCHEMA_PRIVILEGES。
以下是撤銷使用者和角色之限定範圍權限的語法。如需範圍許可的詳細資訊,請參閱 限定範圍權限。
REVOKE [ GRANT OPTION ] { CREATE | USAGE | ALTER } [,...] | ALL [ PRIVILEGES ] } FOR SCHEMAS IN DATABASE db_name FROM { username | ROLE role_name } [, ...] REVOKE [ GRANT OPTION ] { { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [PRIVILEGES] } } FOR TABLES IN {SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name } FROM { username] | ROLE role_name} [, ...] REVOKE [ GRANT OPTION ] { EXECUTE | ALL [ PRIVILEGES ] } FOR FUNCTIONS IN {SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name } FROM { username | ROLE role_name | } [, ...] REVOKE [ GRANT OPTION ] { EXECUTE | ALL [ PRIVILEGES ] } FOR PROCEDURES IN {SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name } FROM { username | ROLE role_name | } [, ...] REVOKE [ GRANT OPTION ] USAGE FOR LANGUAGES IN {DATABASE db_name} FROM { username | ROLE role_name } [, ...]
請注意,範圍許可不會區分函數的許可和程序的許可。例如,下列陳述式會在結構描述 bob
中從 撤銷函數和程序的EXECUTE
許可Sales_schema
。
REVOKE EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema FROM bob;
以下是 Amazon Redshift 上的機器學習模型許可語法。
REVOKE [ GRANT OPTION FOR ] CREATE MODEL FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL [ PRIVILEGES ] } ON MODEL model_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ]
以下是在 Amazon Redshift 上使用撤銷角色許可的語法。
REVOKE [ ADMIN OPTION FOR ] { ROLE role_name } [, ...] FROM { user_name } [, ...]
REVOKE { ROLE role_name } [, ...] FROM { ROLE role_name } [, ...]
以下是在 Amazon Redshift 上對角色撤銷系統許可的語法。
REVOKE { { CREATE USER | DROP USER | ALTER USER | CREATE SCHEMA | DROP SCHEMA | ALTER DEFAULT PRIVILEGES | ACCESS CATALOG | CREATE TABLE | DROP TABLE | ALTER TABLE | CREATE OR REPLACE FUNCTION | CREATE OR REPLACE EXTERNAL FUNCTION | DROP FUNCTION | CREATE OR REPLACE PROCEDURE | DROP PROCEDURE | CREATE OR REPLACE VIEW | DROP VIEW | CREATE MODEL | DROP MODEL | CREATE DATASHARE | ALTER DATASHARE | DROP DATASHARE | CREATE LIBRARY | DROP LIBRARY | CREATE ROLE | DROP ROLE TRUNCATE TABLE VACUUM | ANALYZE | CANCEL }[, ...] } | { ALL [ PRIVILEGES ] } FROM { ROLE role_name } [, ...]
以下是撤銷許可的語法,以解釋EXPLAIN計劃中查詢的資料列層級安全政策篩選條件。您可以使用 REVOKE陳述式撤銷權限。
REVOKE EXPLAIN RLS FROM ROLE rolename
以下是授予許可以略過查詢資料列層級安全性政策的語法。
REVOKE IGNORE RLS FROM ROLE rolename
以下是從指定資料列層級安全性政策撤銷許可的語法。
REVOKE SELECT ON [ TABLE ] table_name [, ...] FROM RLS POLICY policy_name [, ...]
參數
- GRANT OPTION FOR
-
只會撤銷對其他使用者授予指定許可的選項,而不會撤銷許可本身。您無法GRANTOPTION從 群組或 撤銷 PUBLIC。
- SELECT
-
撤銷使用SELECT陳述式從資料表或檢視選取資料的許可。
- INSERT
-
撤銷使用 INSERT陳述式或 COPY陳述式將資料載入資料表的許可。
- UPDATE
-
撤銷使用 UPDATE陳述式更新資料表欄的許可。
- DELETE
-
撤銷從資料表中刪除資料列的許可。
- REFERENCES
-
撤銷建立外部索引鍵限制條件的許可。您應在被動參考資料表與主動參考資料表上撤銷此許可。
- TRUNCATE
-
撤銷截斷資料表的許可。如果沒有此許可,只有資料表的擁有者或超級使用者可以截斷資料表。如需 TRUNCATE命令的詳細資訊,請參閱 TRUNCATE。
- ALL [ PRIVILEGES ]
-
從指定的使用者或群組一次撤銷所有可用許可。PRIVILEGES 關鍵字為選用。
注意
Amazon Redshift 不支援 RULE和 TRIGGER許可。如需詳細資訊,請前往 不支援的 PostgreSQL 功能。
- ALTER
-
根據資料庫物件而定,將下列許可從使用者或使用者群組中撤銷:
-
對於資料表, 會ALTER撤銷變更資料表或檢視的許可。如需詳細資訊,請參閱ALTER TABLE。
-
對於資料庫, 會ALTER撤銷修改資料庫的許可。如需詳細資訊,請參閱ALTER DATABASE。
-
對於結構描述, ALTER會授予撤銷以變更結構描述。如需詳細資訊,請參閱ALTER SCHEMA。
-
對於外部資料表, 會ALTER撤銷在已啟用 Lake Formation AWS Glue Data Catalog 的 中變更資料表的許可。此許可僅適用於使用 Lake Formation 時。
-
- DROP
-
撤銷捨棄資料表的許可。此許可適用於 Amazon Redshift 和 AWS Glue Data Catalog 已啟用 Lake Formation 的 。
- ASSUMEROLE
-
撤銷從具有指定角色的使用者COPYUNLOADEXTERNALFUNCTION、角色或群組執行 、、 或 CREATEMODEL命令的許可。
- ON TABLE 【 】 table_name
-
撤銷資料表或檢視的指定許可。TABLE 關鍵字為選用。
- ON ALL TABLES IN SCHEMA 結構描述名稱
-
撤銷所參考結構描述中所有資料表的指定許可。
- ( column_name 【,...】 ) ON TABLE table_name
-
從 Amazon Redshift 資料表或檢視的指定資料欄PUBLIC上的使用者、群組或 撤銷指定的許可。
- ( column_list ) ON EXTERNAL TABLE schema_name.table_name
-
在 參考結構描述的 Lake Formation 資料表的指定資料欄上,從IAM角色撤銷指定的許可。
- ON EXTERNAL TABLE schema_name.table_name
-
撤銷參考結構描述中指定 Lake Formation 資料表上IAM角色的指定許可。
- ON EXTERNAL SCHEMA 結構描述名稱
-
從參考結構描述上的IAM角色撤銷指定的許可。
- FROM IAM_ROLE iam_role
-
指示IAM角色失去許可。
- ROLE role_name
-
從指定的角色中撤銷許可。
- GROUP group_name
-
從指定的使用者群組中撤銷許可。
- PUBLIC
-
從所有使用者中撤銷指定許可。PUBLIC 代表一律包含所有使用者的群組。個別使用者的許可包含授予 的許可總和PUBLIC、授予使用者所屬任何群組的許可,以及個別授予使用者的任何許可。
從 Lake Formation PUBLIC 外部資料表撤銷會導致從 Lake Formation 每個群組撤銷許可。
- CREATE
-
根據資料庫物件而定,將下列許可從使用者或群組中撤銷:
-
對於資料庫,使用 CREATE子句REVOKE可防止使用者在資料庫中建立結構描述。
-
對於結構描述,使用 CREATE子句REVOKE可防止使用者在結構描述中建立物件。若要重新命名物件,使用者必須具有 CREATE許可,並擁有要重新命名的物件。
注意
根據預設,所有使用者在結構描述上都有 PUBLIC CREATE和 USAGE許可。
-
- TEMPORARY | TEMP
-
撤銷在指定資料庫中建立臨時資料表的許可。
注意
根據預設,使用者會獲得許可,透過其在PUBLIC群組中的自動成員資格來建立臨時資料表。若要移除任何使用者建立臨時資料表的許可,請從PUBLIC群組撤銷TEMP許可,然後明確授予許可,以針對特定使用者或使用者群組建立臨時資料表。
- ON DATABASE db_name
-
撤銷指定資料庫的許可。
- USAGE
-
撤銷特定結構描述內物件的USAGE許可,讓使用者無法存取這些物件。這些物件的特定動作必須個別撤銷 (例如函數的EXECUTE許可)。
注意
根據預設,所有使用者在結構描述上都有 PUBLIC CREATE和 USAGE許可。
- ON SCHEMA 結構描述名稱
-
撤銷指定結構描述的許可。您可以使用結構描述許可來控制資料表的建立;資料庫的CREATE許可僅控制結構描述的建立。
- RESTRICT
-
僅撤銷使用者直接授予的許可。這是預設行為。
- EXECUTE ON PROCEDURE procedure_name
-
撤銷特定預存程序的EXECUTE許可。由於預存程序名稱可以過載,因此您必須包含程序的引數清單。如需詳細資訊,請參閱命名預存程序。
- EXECUTE ON ALL PROCEDURES IN SCHEMA 程序名稱
-
撤銷所參考結構描述中所有程序的指定許可。
- USAGE ON LANGUAGE language_name
-
撤銷語言的USAGE許可。對於 Python 使用者定義函數 (UDFs),請使用
plpythonu
。對於 SQL UDFs,請使用sql
。若為預存程序,請使用plpgsql
。若要建立 UDF,您必須具有 SQL或
plpythonu
(Python) 使用語言的許可。根據預設,USAGEON LANGUAGE SQL 會授予 PUBLIC。不過,您必須明確LANGUAGEPLPYTHONU地將 USAGE ON 授予特定使用者或群組。若要撤銷 的使用SQL,請先撤銷 的使用PUBLIC。然後SQL僅將 上的用量授予允許建立 SQL 的特定使用者或群組UDFs。下列範例SQL會從 撤銷 上的用量,PUBLIC然後將用量授與使用者群組
udf_devs
。revoke usage on language sql from PUBLIC; grant usage on language sql to group udf_devs;
如需詳細資訊,請參閱UDF 安全性和許可。
若要撤銷預存程序的使用,請先從 撤銷使用PUBLIC。然後僅將
plpgsql
使用權授予獲得許可建立預存程序的特定使用者或群組。如需詳細資訊,請參閱預存程序的安全和權限 。 - FOR { ALL | COPY | UNLOAD | EXTERNAL FUNCTION | CREATE MODEL } [, ...]
-
指定撤銷許可的SQL命令。您可以指定 ALL撤銷 COPY、FUNCTION、 UNLOAD EXTERNAL 和 CREATEMODEL陳述式的許可。此子句僅適用於撤銷ASSUMEROLE許可。
- ALTER
撤銷使用者或使用者群組的ALTER許可,允許不擁有資料共用的使用者或使用者群組變更資料共用。需要此許可才能從資料共用新增或移除物件,或設定 屬性 PUBLICACCESSIBLE。如需詳細資訊,請參閱ALTER DATASHARE。
- SHARE
撤銷使用者和使用者群組將取用者新增至資料共用的許可。撤銷此許可需要阻止特定取用者從其叢集存取資料共用。
- ON DATASHARE datashare_name
授予參考資料共用的指定許可。
- FROM 使用者名稱
指出失去許可的使用者。
- FROM GROUP group_name
指出失去許可的使用者群組。
- WITH GRANT OPTION
指出失去許可的使用者可以接著撤銷其他人的相同許可。您無法WITHGRANTOPTION撤銷 群組或 的 PUBLIC。
- USAGE
當同一帳戶內的消費者帳戶或命名空間遭到USAGE撤銷時,帳戶內指定的消費者帳戶或命名空間無法以唯讀方式存取資料共用和資料共用的物件。
撤銷USAGE許可會撤銷取用者對資料共用的存取權。
- FROM NAMESPACE '叢集命名空間 GUID'
指出其中取用者失去資料共用許可的相同帳戶中的命名空間。命名空間使用 128 位元英數全域唯一識別碼 (GUID)。
- FROM ACCOUNT 'accountnumber' 【 VIA DATA CATALOG 】
指出其中取用者失去資料共用許可的其他帳戶中的帳戶編號。指定「VIACATALOG」表示您要從 Lake Formation DATA 帳戶撤銷資料共用的使用。省略帳號代表您要從擁有叢集的帳戶撤銷。
-
在指定資料共用中建立的指定資料庫上撤銷指定使用許可。
-
在指定資料共用中建立的指定結構描述上撤銷指定許可。
- FOR { SCHEMAS | TABLES | FUNCTIONS | PROCEDURES | LANGUAGES } IN
-
指定要撤銷權限的資料庫物件。IN 後面的參數定義撤銷權限的範圍。
- CREATE MODEL
撤銷在指定資料庫中建立機器學習模型的CREATEMODEL許可。
- ON MODEL model_name
撤銷特定模型的EXECUTE許可。
- ACCESS CATALOG
-
撤銷權限,以檢視角色可存取之物件的相關中繼資料。
- 【 ADMIN OPTION FOR 】 { 角色 } 【, ...】
從具有 的指定使用者撤銷的角色WITHADMINOPTION。
- FROM { 角色 } 【、...】
您從中撤銷指定角色的角色。
使用須知
若要進一步了解 的用量備註REVOKE,請參閱 使用須知。
範例
如需如何使用 的範例REVOKE,請參閱 範例。