REVOKE - Amazon Redshift

REVOKE

テーブルの作成、削除、または更新を行うためのアクセス許可をユーザーまたはロールから削除します。

ON SCHEMA 構文を使用するデータベースユーザーおよびロールには、外部スキーマに対する USAGE アクセス許可の GRANT (付与) または REVOKE (取り消し) のみを行うことができます。AWS Lake Formation で ON EXTERNAL SCHEMA を使用する場合は、AWS Identity and Access Management(IAM) ロールに対して、アクセス許可の GRANT (付与) および REVOKE (取り消し) のみを行うことができます。アクセス許可のリストについては、構文を参照してください。

ストアドプロシージャの場合、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 } [, ...]

スコープ設定アクセス許可を使用すると、データベースまたはスキーマ内の特定タイプのすべてのオブジェクトに対するアクセス許可をユーザーまたはロールに付与できます。スコープ設定アクセス許可を持つユーザーやロールは、データベースまたはスキーマ内の現在および将来のすべてのオブジェクトに対して指定されたアクセス許可を持ちます。

以下は、ユーザーとロールからスコープ付きアクセス許可を取り消すための構文です。スコープ設定アクセス許可の詳細については、「スコープ設定アクセス許可」を参照してください。

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

データベースオブジェクトに応じて、ユーザーまたはグループから以下のアクセス許可を取り消します。

  • データベースでは、REVOKE の CREATE 句を使用してユーザーがデータベース内でスキーマを作成することを阻止します。

  • スキーマでは、REVOKE の CREATE 句を使用してユーザーがスキーマ内でオブジェクトを作成することを阻止します。オブジェクトの名前を変更するには、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 UDF の作成を許可された特定のユーザーやグループにのみ、SQL の使用を許可します。次の例では、最初に PUBLIC に対して SQL の使用を取り消し、次にユーザーグループ udf_devs に使用を許可します。

revoke usage on language sql from PUBLIC; grant usage on language sql to group udf_devs;

詳細については、「UDF のセキュリティおよび権限」を参照してください。

ストアドプロシージャの使用を取り消すには、最初に PUBLIC に対して使用を取り消します。次に、SQL UDF の作成を許可された特定のユーザーやグループにのみ、plpgsqlの使用を許可します。詳細については、「ストアドプロシージャのセキュリティおよび権限 」を参照してください。

{ 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 の使用方法の例については、「」を参照してください。