REVOKE - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

REVOKE

從使用者或角色移除存取許可,例如建立、捨棄或更新資料表的許可。

您只能對使用 ON SCHEMA 語法的資料庫使用者和角色執行外部結構描述的 GRANT 或 REVOKE USAGE 許可。搭配使用 ON 外部結構描述時 AWS Lake Formation,您只能授與和撤銷 AWS Identity and Access Management (IAM) 角色的權限。如需許可的清單,請參閱語法。

若為預存程序,系統依預設會將 USAGE ON LANGUAGE plpgsql 許可授予 PUBLIC。在預設情況下,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 } [, ...]
生產者端資料共用權限

以下是使用 REVOKE 移除使用者或角色的 ALTER 或 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 語法,用於特定資料庫或從資料共用建立的結構描述。從用 WITH PERMISSIONS 子句建立的資料庫撤銷使用權限,不會撤銷您授予使用者或角色的其他任何權限,包括授予基礎物件的物件層級權限。如果您重新授予該使用者或角色的使用權限,他們會保留他們在您撤銷使用權之前擁有的其他所有權限。

REVOKE USAGE ON { DATABASE shared_database_name [, ...] | SCHEMA shared_schema} FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]

作用域權限可讓您將權限授與資料庫或結構描述中某個類型之所有物件的使用者或角色。具有範圍權限的使用者和角色對資料庫或結構描述中所有目前和 future 物件都具有指定的權限。

以下是撤銷使用者和角色之限定範圍權限的語法。如需有關範圍權限的詳細資訊,請參閱。限定範圍權限

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 } [, ...]

以下是 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

只會撤銷對其他使用者授予指定許可的選項,而不會撤銷許可本身。您無法撤銷群組或 PUBLIC 的 GRANT OPTION。

SELECT

撤銷使用 SELECT 陳述式從資料表或檢視選取資料的許可。

INSERT

撤銷使用 INSERT 陳述式或 COPY 陳述式將資料載入資料表中的許可。

UPDATE

撤銷使用 UPDATE 陳述式更新資料表資料欄的許可。

DELETE

撤銷從資料表中刪除資料列的許可。

REFERENCES

撤銷建立外部索引鍵限制條件的許可。您應在被動參考資料表與主動參考資料表上撤銷此許可。

TRUNCATE

撤銷截斷資料表的許可。如果沒有此許可,只有資料表的擁有者或超級使用者可以截斷資料表。如需 TRUNCATE 命令的相關資訊,請參閱 TRUNCATE

ALL [ PRIVILEGES ]

從指定的使用者或群組一次撤銷所有可用許可。PRIVILEGES 關鍵字為選用。

ALTER

根據資料庫物件而定,將下列許可從使用者或使用者群組中撤銷:

  • 對於資料表,ALTER 會撤銷修改資料表或檢視的許可。如需詳細資訊,請參閱 ALTER TABLE

  • 對於資料庫,ALTER 會撤銷修改資料庫的許可。如需詳細資訊,請參閱 ALTER DATABASE

  • 對於結構描述,ALTER 會授予修改結構描述的撤銷權。如需詳細資訊,請參閱 ALTER SCHEMA

  • 對於外部資料表,ALTER 會撤銷變更已啟用 Lake Formation AWS Glue Data Catalog 之表格的權限。此許可僅適用於使用 Lake Formation 時。

DROP

撤銷捨棄資料表的許可。此權限適用於 Amazon Redshift 以及為 Lake Formation 啟用的。 AWS Glue Data Catalog

ASSUMEROLE

從使用者、角色或具有指定角色的群組中撤銷執行 COPY、UNLOAD、EXTERNAL FUNCTION 或 CREATE MODEL 命令的許可。

ON [ TABLE ] table_name

撤銷資料表或檢視的指定許可。TABLE 關鍵字為選用。

ON ALL TABLES IN SCHEMA schema_name

撤銷所參考結構描述中所有資料表的指定許可。

( 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 schema_name

從所參考結構描述上的 IAM 角色撤銷指定許可。

FROM IAM_ROLE iam_role

指出失去許可的 IAM 角色。

ROLE role_name

從指定的角色中撤銷許可。

GROUP group_name

從指定的使用者群組中撤銷許可。

PUBLIC

從所有使用者中撤銷指定許可。PUBLIC 代表永遠包含所有使用者的群組。個別使用者的許可是由授予 PUBLIC 的許可、授予使用者所屬之任何群組的許可,以及個別授予使用者的任何許可,三者加總所組成。

從 Lake Formation 外部資料表撤銷 PUBLIC 會從 Lake Formation everyone 群組撤銷該許可。

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 schema_name

撤銷指定結構描述的許可。您可以使用結構描述許可控制資料表的建立;資料庫的 CREATE 許可只能控制結構描述的建立。

RESTRICT

僅撤銷使用者直接授予的許可。這是預設行為。

EXECUTE ON PROCEDURE procedure_name

撤銷特定預存程序的 EXECUTE 許可。由於預存程序名稱可以過載,因此您必須包含程序的引數清單。如需詳細資訊,請參閱 命名預存程序

EXECUTE ON ALL PROCEDURES IN SCHEMA procedure_name

撤銷所參考結構描述中所有程序的指定許可。

USAGE ON LANGUAGE language_name

撤銷某種語言的 USAGE 許可。若為 Python 使用者定義函數 (UDF),請使用 plpythonu。若是 SQL UDF,請使用 sql。若為預存程序,請使用 plpgsql

若要建立 UDF,您必須具有 SQL 或 plpythonu (Python) 的語言使用權許可。根據預設,USAGE ON LANGUAGE SQL 會授予 PUBLIC。不過,您必須將 USAGE ON LANGUAGE PLPYTHONU 明確授予特定使用者或群組。

若要撤銷 SQL 的使用權,請先從 PUBLIC 撤銷使用權。然後僅將 SQL 使用權授予獲得許可建立 SQL UDF 的特定使用者或群組。下列範例會撤銷 PUBLIC 的 SQL 使用權,然後將使用權授予使用者群組 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、UNLOAD、EXTERNAL FUNCTION 和 CREATE MODEL 陳述式的許可。此子句僅適用於撤銷 ASSUMEROLE 許可。

ALTER

撤銷使用者或使用者群組的 ALTER 權限,該權限可讓未擁有資料共用的使用者或使用者群組修改資料共用。需要此許可才能在資料共用中新增或移除物件,或設定屬性 PUBLICACCESSIBLE。如需詳細資訊,請參閱 ALTER DATASHARE

SHARE

撤銷使用者和使用者群組將取用者新增至資料共用的許可。撤銷此許可需要阻止特定取用者從其叢集存取資料共用。

ON DATASHARE datashare_name

授予參考資料共用的指定許可。

FROM 使用者名稱

指出失去許可的使用者。

FROM GROUP group_name

指出失去許可的使用者群組。

WITH GRANT OPTION

指出失去許可的使用者可以接著撤銷其他人的相同許可。您無法撤銷群組或 PUBLIC 的 WITH GRANT OPTION。

USAGE

對相同帳戶內的取用者帳戶或命名空間撤銷 USAGE 時,帳戶內的特定取用者帳戶或命名空間不可以以唯讀方式存取資料共用和資料共用的物件。

撤銷 USAGE 許可會撤銷取用者對資料共用的存取權。

FROM NAMESPACE 'clusternamespace GUID'

指出其中取用者失去資料共用許可的相同帳戶中的命名空間。命名空間會使用 128 位元英數字元的全域唯一識別碼 (GUID)。

FROM ACCOUNT 'accountnumber' [ VIA DATA CATALOG ]

指出其中取用者失去資料共用許可的其他帳戶中的帳戶編號。指定 ‘VIA DATA CATALOG’ 表示您正在從 Lake Formation 帳戶中撤銷資料共用使用權。省略帳號代表您要從擁有叢集的帳戶撤銷。

ON DATABASE shared_database_name> [, ...]

在指定資料共用中建立的指定資料庫上撤銷指定使用許可。

ON SCHEMA shared_schema

在指定資料共用中建立的指定結構描述上撤銷指定許可。

FOR { SCHEMAS | TABLES | FUNCTIONS | PROCEDURES | LANGUAGES } IN

指定要撤銷權限的資料庫物件。IN 後面的參數定義撤銷權限的範圍。

CREATE MODEL

撤銷 CREATE MODEL 權限,以便在指定的資料庫中建立機器學習模型。

ON MODEL model_name

撤銷特定模型的 EXECUTE 許可。

ACCESS CATALOG

撤銷權限,以檢視角色可存取之物件的相關中繼資料。

[ ADMIN OPTION FOR ] { role } [, ...]

您從具有 WITH ADMIN OPTION 的指定使用者撤銷的角色。

FROM { role } [, ...]

您從中撤銷指定角色的角色。

若要進一步了解 REVOKE 使用須知,請參閱 使用須知

如需如何使用 REVOKE 的範例,請參閱 範例