GRANT - Amazon Redshift

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

GRANT

ユーザーまたはユーザーグループのアクセス権を定義します。

Privileges include access options such as being able to read data in tables and views, write data, create tables, and drop tables. このコマンドを使用して、テーブル、データベース、スキーマ、関数、手順、言語、または列に特定の権限を付与します。データベースオブジェクトから権限を削除するには、REVOKE コマンドを使用します。

Privileges also include access options such as being able to add objects or consumers to or remove objects or consumers from a datashare. To add database objects to or remove database objects from a datashare for a user or user group, use the ALTER privilege. Similarly, to add or remove consumers from a datashare, use the SHARE privilege. データベースオブジェクトから権限を削除するには、REVOKE コマンドを使用します。ALTER and SHARE are the only privileges that you can grant to users and user groups.

ON SCHEMA 構文を使用するデータベースユーザーおよびユーザーグループには、外部スキーマに対する USAGE 権限の GRANT (付与) または REVOKE (取り消し) のみを行うことができます。When using ON EXTERNAL SCHEMA with AWS Lake Formation, you can only GRANT and REVOKE privileges to an AWS Identity and Access Management (IAM) role. 権限のリストについては、該当する構文を参照してください。

ストアドプロシージャの場合、付与できる権限は EXCUTE のみです。

You can't run GRANT (on an external resource) within a transaction block (BEGIN ... END). トランザクションの詳細については、「直列化可能分離」を参照してください。

Syntax

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

The following is the syntax for column-level privileges on Amazon Redshift tables and views.

GRANT { { SELECT | UPDATE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) } ON { [ TABLE ] table_name [, ...] } TO { username | GROUP group_name | PUBLIC } [, ...]

The following is the syntax for the ASSUMEROLE privilege granted to users and groups with a specified role.

GRANT ASSUMEROLE ON { 'iam_role' [, ...] | ALL } TO { username | GROUP group_name | PUBLIC } [, ...] FOR { ALL | COPY | UNLOAD } [, ...]

The following is the syntax for Redshift Spectrum integration with Lake Formation.

GRANT { SELECT | ALL [ PRIVILEGES ] } ( column_list ) ON EXTERNAL TABLE schema_name.table_name TO { IAM_ROLE iam_role } [, ...] [ WITH GRANT OPTION ] GRANT { { SELECT | ALTER | DROP | DELETE | INSERT } [, ...] | ALL [ PRIVILEGES ] } ON EXTERNAL TABLE schema_name.table_name [, ...] TO { { IAM_ROLE iam_role } [, ...] | PUBLIC } [ WITH GRANT OPTION ] GRANT { { CREATE | ALTER | DROP } [, ...] | ALL [ PRIVILEGES ] } ON EXTERNAL SCHEMA schema_name [, ...] TO { IAM_ROLE iam_role } [, ...] [ WITH GRANT OPTION ]

The following is the syntax for using GRANT for datashare privileges on Amazon Redshift. ALTER and SHARE are the only privileges that you can grant to users and user groups in this case.

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

The following is the syntax for using GRANT for datashare usage privileges on Amazon Redshift. You grant access to a datashare to a consumer using the USAGE privilege. You can't grant this privilege to users or user groups. This privilege also doesn't support the WITH GRANT OPTION for the GRANT statement. Only users or user groups with the SHARE privilege previously granted to them FOR the datashare can run this type of GRANT statement.

GRANT USAGE ON DATASHARE datashare_name TO NAMESPACE 'namespaceGUID' [, ...] | ACCOUNT 'accountnumber' [, ...]

The following is the syntax for GRANT data-sharing usage permissions on a specific database or schema created from a datashare. This USAGE permission doesn't grant usage permission to databases that aren't created from the specified datashare. You can only GRANT or REVOKE ALTER or SHARE permissions on a datashare to users and user groups.

GRANT USAGE ON { DATABASE shared_database_name [, ...] | SCHEMA shared_schema} TO { username | GROUP group_name | PUBLIC } [, ...]
This is prerelease documentation for the machine learning feature for Amazon Redshift, which is in preview release. The documentation and the feature are both subject to change. We recommend that you use this feature only with test clusters, and not in production environments. For preview terms and conditions, see Beta Service Participation in AWS Service Terms.

The following is the syntax for machine learning model privileges on Amazon Redshift. 各パラメータの詳細については、「GRANT MODEL privileges」を参照してください。

GRANT CREATE MODEL TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...] GRANT { EXECUTE | ALL [ PRIVILEGES ] } ON MODEL model_name [, ...] TO { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]

Parameters

SELECT

SELECT ステートメントを使用して、テーブルまたはビューからデータを選択する権限を付与します。UPDATE 操作または DELETE 操作で既存の列値を参照するには、SELECT 権限も必要です。

INSERT

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

UPDATE

UPDATE ステートメントを使用して、テーブルの列を更新する権限を付与します UPDATE 操作には、SELECT 権限も必要です。これは、更新する行、または列の新しい値を計算する行を決定するには、テーブルの列を参照する必要があるためです。

DELETE

テーブルからデータ行を削除する権限を付与します DELETE 操作には、SELECT 権限も必要です。これは、削除する行を決定するには、テーブルの列を参照する必要があるためです。

REFERENCES

外部キーの制約を作成する権限を付与します。参照されるテーブルと参照するテーブルの両方で、この権限を付与する必要があります。そうしないと、ユーザーは制約を作成できません。

ALL [ PRIVILEGES ]

指定したユーザーまたはユーザーグループに、すべての使用できる権限を 1 度で付与します。PRIVILEGES キーワードはオプションです。

GRANT ALL ON SCHEMA は、外部スキーマに対する CREATE 権限を付与しません。

You can grant ALL privilege to a table in an AWS Glue Data Catalog that is enabled for Lake Formation. In this case, individual privileges (such as SELECT, ALTER, and so on) are recorded in the Data Catalog.

ALTER

Grants privilege to alter a table in an AWS Glue Data Catalog that is enabled for Lake Formation. This privilege only applies when using Lake Formation.

DROP

Grants privilege to drop a table. This privilege applies in Amazon Redshift and in an AWS Glue Data Catalog that is enabled for Lake Formation.

ASSUMEROLE

Grants privilege to run COPY and UNLOAD commands to users and groups with a specified role. The user or group assumes that role when running the specified command.

ON [ TABLE ] table_name

テーブルまたはビューに、指定した権限を付与します。TABLE キーワードはオプションです。1 つのステートメントで、複数のテーブルとビューを列挙できます。

ON ALL TABLES IN SCHEMA schema_name

参照されたスキーマ内のすべてのテーブルおよびビューに指定された権限を付与します。

( column_name [,...] ) ON TABLE table_name

Grants the specified privileges to users, groups, or PUBLIC on the specified columns of the Amazon Redshift table or view.

(column_list) ON EXTERNAL TABLE schema_name.table_name

Grants the specified privileges to an IAM role on the specified columns of the Lake Formation table in the referenced schema.

ON EXTERNAL TABLE schema_name.table_name

Grants the specified privileges to an IAM role on the specified Lake Formation tables in the referenced schema.

ON EXTERNAL SCHEMA schema_name

参照されるスキーマの IAM ロールに指定された権限を付与します。

ON iam_role

Grants the specified privileges to an IAM role.

TO username

権限を付与されるユーザーを示します。

TO IAM_ROLE iam_role

権限を付与される IAM ロールを示します。

WITH GRANT OPTION

権限を付与されるユーザーが、他のユーザーにも同じ権限を付与できることを示します。WITH GRANT OPTION can't be granted to a group or to PUBLIC.

GROUP group_name

権限をユーザーグループに付与します。

PUBLIC

指定した権限を、後で作成されるユーザーを含め、すべてのユーザーに付与します。PUBLIC は、常にすべてのユーザーを含むグループを表します。各ユーザーの権限には、PUBLIC に付与された権限、ユーザーが属するグループに付与された権限、およびそのユーザーに付与された権限のすべてが含まれます。

Granting PUBLIC to a Lake Formation EXTERNAL TABLE results in granting the privilege to the Lake Formation everyone group.

CREATE

データベースオブジェクトに応じて、次の権限をユーザーまたはユーザーグループに付与します。

  • データベースの場合、CREATE はデータベース内にスキーマを作成することをユーザーに許可します。

  • スキーマの場合、CREATE はスキーマ内にオブジェクトを作成することをユーザーに許可します。オブジェクトの名前を変更するには、CREATE 権限と、名前を変更するオブジェクトを所有している必要があります。

  • CREATE ON SCHEMA isn't supported for Amazon Redshift Spectrum external schemas. 外部スキーマの外部テーブルの使用を許可するには、アクセスする必要のあるユーザーに USAGE ON SCHEMA を付与します。外部スキーマの所有者またはスーパーユーザーのみが外部スキーマ内に外部テーブルを作成できます。外部スキーマの所有者を移行するには、「ALTER SCHEMA」を使用して所有者を変更します。

TEMPORARY | TEMP

指定したデータベースに一時テーブルを作成する権限を付与します。Amazon Redshift Spectrum クエリを実行するには、データベースユーザーがデータベースに一時テーブルを作成するアクセス権限を持っている必要があります。

注記

デフォルトでは、PUBLIC グループの自動メンバーシップにより、一時テーブルを作成する権限がユーザーに付与されます。一時テーブルを作成するユーザーに対する権限を削除するには、PUBLIC グループから TEMP 権限を取り消します。次に、一時テーブルを作成する権限を、特定のユーザーまたはユーザーグループに明示的に付与します。

ON DATABASE db_name

データベースに対する指定された権限を付与します。

USAGE

特定のスキーマに対して USAGE 権限を付与します。これによって、そのスキーマ内のオブジェクトにユーザーがアクセスできるようになります。これらのオブジェクトに対する特定のアクションは、個別に許可する必要があります (例: テーブルに対する SELECT または UPDATE の権限)。デフォルトでは、すべてのユーザーは PUBLIC スキーマに対して、CREATE 権限と USAGE 権限を所有しています。

ON SCHEMA schema_name

スキーマに対する指定された権限を付与します。

GRANT CREATE ON SCHEMA and the CREATE privilege in GRANT ALL ON SCHEMA aren't supported for Amazon Redshift Spectrum external schemas. 外部スキーマの外部テーブルの使用を許可するには、アクセスする必要のあるユーザーに USAGE ON SCHEMA を付与します。外部スキーマの所有者またはスーパーユーザーのみが外部スキーマ内に外部テーブルを作成できます。外部スキーマの所有者を移行するには、「ALTER SCHEMA」を使用して所有者を変更します。

EXECUTE ON FUNCTION function_name

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

EXECUTE ON ALL FUNCTIONS IN SCHEMA schema_name

参照されたスキーマ内のすべての関数に対する指定された権限を付与します。

EXECUTE ON PROCEDURE procedure_name

特定のストアドプロシージャに対する EXECUTE 権限を付与します。ストアドプロシージャ名は重複する場合があるため、プロシージャの引数リストを含める必要があります。詳細については、「ストアドプロシージャの名前付け」を参照してください。

EXECUTE ON ALL PROCEDURES IN SCHEMA schema_name

参照されたスキーマ内のすべてのストアドプロシージャに対する指定された権限を付与します。

USAGE ON LANGUAGE language_name

言語に対する USAGE 権限を付与します。

USAGE ON LANGUAGE 権限は、CREATE FUNCTION コマンドを実行してユーザー定義関数 (UDF) を作成するために必要です。詳細については、「UDF のセキュリティおよび権限」を参照してください。

USAGE ON LANGUAGE は、CREATE PROCEDURE コマンドを実行してストアドプロシージャを作成するために必要です。詳細については、「ストアドプロシージャのセキュリティおよび権限 」を参照してください。

Python UDF の場合、plpythonu を使用します。SQL UDF の場合、sql を使用します。ストアドプロシージャの場合、plpgsql を使用します。

FOR { ALL | COPY | UNLOAD } [, ...]

Specifies the SQL command for which the privilege is granted. You can specify ALL to grant the privilege on the COPY and UNLOAD statements. This clause applies only to granting the ASSUMEROLE privilege.

ALTER

Grants the ALTER privilege to users to add or remove objects from a datashare, or to set the property PUBLICACCESSIBLE. 詳細については、「ALTER DATASHARE」を参照してください。

SHARE

Grants privileges to users and user groups to add data consumers to a datashare. This privilege is required to enable the particular consumer (account or namespace) to access the datashare from their clusters. The consumer can be the same or a different AWS account, with the same or a different cluster namespace as specified by a globally unique identifier (GUID).

ON DATASHARE datashare_name

Grants the specified privileges on the referenced datashare.

USAGE

When USAGE is granted to a consumer account or namespace within the same account, the specific consumer account or namespace within the account can access the datashare and the objects of the datashare in read-only fashion.

TO NAMESPACE 'clusternamespace GUID'

Indicates a namespace in the same account where consumers can receive the specified privileges to the datashare. Namespaces use a 128-bit alphanumeric GUID.

TO ACCOUNT 'accountnumber'

Indicates the number of another account whose consumers can receive the specified privileges to the datashare.

ON DATABASE shared_database_name> [, ...]

Grants the specified usage privileges on the specified database that is created in the specified datashare.

ON SCHEMA shared_schema

Grants the specified privileges on the specified schema that is created in the specified datashare.

GRANT MODEL privileges

This is prerelease documentation for the machine learning feature for Amazon Redshift, which is in preview release. The documentation and the feature are both subject to change. We recommend that you use this feature only with test clusters, and not in production environments. For preview terms and conditions, see Beta Service Participation in AWS Service Terms.

Use the following model-specific parameters.

CREATE MODEL

Grants the CREATE MODEL privilege to specific users or user groups.

ON MODEL model_name

Grants the EXECUTE privilege on a specific model. Because model names can be overloaded, make sure to include the argument list for the model.