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 コマンドを使用します。

Syntax

REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | DROP | REFERENCES } [,...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] } ON DATABASE db_name [, ...] FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] } ON SCHEMA schema_name [, ...] FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] EXECUTE ON FUNCTION function_name ( [ [ argname ] argtype [, ...] ] ) [, ...] FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { EXECUTE } [,...] | ALL [ PRIVILEGES ] } ON PROCEDURE procedure_name ( [ [ argname ] argtype [, ...] ] ) [, ...] FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] USAGE ON LANGUAGE language_name [, ...] FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]

Amazon Redshift テーブルとビューに対する列レベルの権限の構文を次に示します。

REVOKE { { SELECT | UPDATE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) } ON { [ TABLE ] table_name [, ...] } FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]

次に、指定したロールを持つユーザーおよびグループから ASSUMEROLE 権限を取り消すための構文を示します。

REVOKE ASSUMEROLE ON { 'iam_role' [, ...] | ALL } FROM { user_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 } [, ...]

Amazon Redshift のデータ共有権限に REVOKE を使用するための構文を次に示します。

REVOKE { ALTER | SHARE } ON DATASHARE datashare_name FROM { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]

以下に、Amazon Redshift のデータ共有の使用権限に REVOKE を使用するための構文を示します。

REVOKE USAGE ON DATASHARE datashare_name FROM NAMESPACE 'namespaceGUID' [, ...] | ACCOUNT 'accountnumber' [, ...]

以下は、データ共有から作成された特定のデータベースまたはスキーマに対するデータ共有使用許可の REVOKE 構文です。この USAGE 許可は、指定されたデータ共有から作成されていないデータベースへの使用許可を取り消すことはありません。ユーザーおよびユーザーグループに対しては、データ共有に対する許可を取り消し、変更、または共有することしかできません。

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

Amazon Redshift での機械学習モデル権限の構文を次に示します。

REVOKE [ GRANT OPTION FOR ] CREATE MODEL FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL [ PRIVILEGES ] } ON MODEL model_name [, ...] FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]

Parameters

GRANT OPTION FOR

他のユーザーに特定の権限を付与するオプションのみを取り消し、権限自体は取り消しません。グループや PUBLIC の GRANT OPTION を取り消すことはできません。

SELECT

SELECT ステートメントを使って、テーブルやビューからデータを選択する権限を取り消します。

INSERT

INSERT ステートメントまたは COPY ステートメントを使って、データをテーブルにロードする権限を取り消します。

UPDATE

UPDATE ステートメントを使って、テーブル列を更新する権限を取り消します。

DELETE

テーブルからデータ行を削除する権限を取り消します。

REFERENCES

外部キー制限を作成する権限を取り消します。参照先テーブルと参照元テーブルの両方で、この権限を取り消してください。

ALL [ PRIVILEGES ]

指定されたユーザーまたはグループから、使用可能なすべての権限を一括で取り消します。PRIVILEGES キーワードはオプションです。

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 ロールを示します。

GROUP group_name

指定されたユーザーグループから権限を取り消します。

PUBLIC

すべてのユーザーから指定された権限を取り消します。PUBLIC は、常にすべてのユーザーを含むグループを表します。各ユーザーの権限には、PUBLIC に付与された権限、ユーザーが属するグループに付与された権限、およびそのユーザーに付与された権限のすべてが含まれます。

PUBLIC を Lake Formation EXTERNAL TABLE から取り消すと、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 権限は、スキーマの作成だけを制御します。

CASCADE

ユーザーが付与オプションのある権限を保持していて、他のユーザーに権限を付与した場合、他のユーザーが保持する権限は依存権限になります。最初のユーザーが保有する権限または付与オプションを取り消した際に、それに依存する権限が存在していた場合、CASCADE を指定すると、依存する権限も取り消されます。巣でない場合、取り消しアクションは失敗します。

例えば、ユーザー A がユーザー B に付与オプションを使って権限を付与し、ユーザーがユーザー C に権限を付与した場合、ユーザー A はユーザー B からの付与オプションを取り消し、その後 CASCADE オプションを使って、ユーザー C の権限を取り消すことができます。

RESTRICT

ユーザーが直接付与した権限だけを取り消します。この動作がデフォルトです。

EXECUTE ON FUNCTION function_name

特定の関数を実行する権限を取り消します。関数名が重複する場合があるため、関数の引数リストが含まれている必要があります。詳細については、「UDF の命名」を参照してください。

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'

コンシューマがデータ共有への権限を失っている別のアカウントのアカウント番号を示します。

ON DATABASE shared_database_name> [, ...]

指定されたデータ共有で作成された指定済みのデータベースに対する指定された使用権限を取り消します。

ON SCHEMA shared_schema

指定されたデータ共有で作成された指定済みのスキーマに対する指定された権限を取り消します。

モデルを作成する

指定されたデータベース内に機械学習モデルを作成する CREATE MODEL 権限を取り消します。

ON MODEL model_name

特定のモデルを実行する権限を取り消します。