メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

ALTER DEFAULT PRIVILEGES

指定したユーザーによって今後作成されるオブジェクトに対して、デフォルトで適用するアクセス権限のセットを定義します。デフォルトでは、ユーザーが自分のデフォルトのアクセス権限のみ変更できます。他のユーザーに対しては、スーパーユーザーのみがデフォルト権限を指定できます。

デフォルト権限は、ユーザーまたはユーザーグループに適用できます。デフォルト権限は、現在のデータベースに作成されているすべてのオブジェクトにグローバルに設定することも、指定したスキーマに作成されているオブジェクトにのみ設定することもできます。

デフォルト権限は、新しいオブジェクトにのみ適用されます。ALTER DEFAULT PRIVILEGES を実行しても、既存のオブジェクトの権限は変更されません。

権限の詳細については、「GRANT」を参照してください。

データベースユーザーのデフォルト権限に関する情報を表示するには、PG_DEFAULT_ACL システムカタログテーブルをクエリします。

構文

Copy
ALTER DEFAULT PRIVILEGES [ FOR USER target_user [, ...] ] [ IN SCHEMA schema_name [, ...] ] grant_or_revoke_clause where grant_or_revoke_clause is one of: GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [,...] | ALL [ PRIVILEGES ] } ON TABLES TO { user_name [ WITH GRANT OPTION ]| GROUP group_name | PUBLIC } [, ...] GRANT { EXECUTE | ALL [ PRIVILEGES ] } ON FUNCTIONS TO { user_name [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...] REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [,...] | ALL [ PRIVILEGES ] } ON TABLES FROM user_name [, ...] [ CASCADE | RESTRICT ] REVOKE { { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [,...] | ALL [ PRIVILEGES ] } ON TABLES FROM { GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL [ PRIVILEGES ] } ON FUNCTIONS FROM user_name [, ...] [ CASCADE | RESTRICT ] REVOKE { EXECUTE | ALL [ PRIVILEGES ] } ON FUNCTIONS FROM { GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]

Parameters

FOR USER target_user

オプション。デフォルト権限が定義されているユーザーの名前。他のユーザーに対しては、スーパーユーザーのみがデフォルト権限を指定できます。デフォルト値は現在のユーザーです。

IN SCHEMA schema_name

オプション。IN SCHEMA 句が表示さている場合、指定したデフォルト権限は、schema_name で指定されたスキーマに作成されている新しいオブジェクトに適用されます。この場合、ALTER DEFAULT PRIVILEGES のターゲットであるユーザーまたはユーザーグループは、指定されたスキーマに対する CREATE権限が必要です。スキーマ固有のデフォルト権限は、既存のグローバルなデフォルト権限に追加されます。デフォルトでは、デフォルト権限はデータベース全体にグローバルに適用されます。

GRANT

指定したユーザーが作成するすべての新しいテーブルや関数について、指定したユーザーやグループに付与する権限のセット。GRANT 句では、GRANT コマンドと同じ権限とオプションを設定できます。

WITH GRANT OPTION

権限を付与されるユーザーが、他のユーザーにも同じ権限を付与できることを示します。WITH GRANT OPTION をグループまたは PUBLIC に付与することはできません。

TO user_name | GROUP group_name

指定したデフォルト権限が適用されるユーザーまたはユーザーグループの名前。

REVOKE

指定したユーザーが作成するすべての新しいテーブルや関数について、指定したユーザーやグループから取り消す権限のセット。REVOKE 句では、REVOKE コマンドと同じ権限とオプションを設定できます。

GRANT OPTION FOR

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

FROM user_name | GROUP group_name

指定した権限をデフォルトで取り消すユーザーまたはユーザーグループの名前。

ユーザーグループ report_readers に属する任意のユーザーに対して、ユーザー report_admin が作成したすべてのテーブルを表示することを許可するとします。この場合は、スーパーユーザーとして次のコマンドを実行します。

Copy
alter default privileges for user report_admin grant select on tables to group report_readers;

次の例では、最初のコマンドにより、作成するすべての新しいテーブルに対して SELECT 権限が付与されます。

Copy
alter default privileges grant select on tables to public;

次の例では、sales スキーマで作成するすべての新しいテーブルとビューに対して、sales_admin ユーザーグループに INSERT 権限が付与されます。

Copy
alter default privileges in schema sales grant insert on tables to group sales_admin;

次の例では、前の例とは逆に ALTER DEFAULT PRIVILEGES コマンドで権限を取り消します。

Copy
alter default privileges in schema sales revoke insert on tables from group sales_admin;

デフォルトでは、PUBLIC ユーザーグループはすべての新しいユーザー定義関数に対して EXECUTE 権限を付与されます。新しい関数に対する public EXECUTE 権限を取り消して、dev_test ユーザーグループにのみ EXECUTE 権限を付与するには、次のコマンドを実行します。

Copy
alter default privileges revoke execute on functions from public; alter default privileges grant execute on functions to group dev_test;

このページの内容: