PG_DEFAULT_ACL - Amazon Redshift

PG_DEFAULT_ACL

デフォルトのアクセス権限に関する情報を格納します。デフォルトのアクセス権限の詳細については、「ALTER DEFAULT PRIVILEGES」参照してください。

PG_DEFAULT_ACL はすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できますが、通常のユーザーは自分のデータのみを表示できます。詳細については、「システムテーブルとビューのデータの可視性」を参照してください

テーブルの列

列名 データ型 説明
defacluser integer リストされている権限が適用されるユーザーの ID。
defaclnamespace oid デフォルト権限が適用されるスキーマのオブジェクト ID。スキーマが指定されていない場合、デフォルト値は 0 です。
defaclobjtype character

デフォルト権限が適用されるオブジェクトの型。有効な値は次のとおりです。

  • r – リレーション (テーブルまたはビュー)

  • f – 関数

  • p – ストアドプロシージャ

defaclacl aclitem[]

指定されたユーザーまたはユーザーグループとオブジェクト型のデフォルト権限を定義する文字列。

権限がユーザーに付与される場合、文字列は次のようになります。

{ username=privilegestring/grantor }

username

権限が付与されるユーザーの名前。username を省略すると、権限は PUBLIC に付与されます。

権限がユーザーグループに付与される場合、文字列は次のようになります。

{ "group groupname=privilegestring/grantor" }

privilegestring

どの権限を付与するかを指定する文字列。

次の値を指定できます:

  • a – INSERT (付加)

  • r – SELECT (読み込み)

  • w – UPDATE (書き込み)

  • d – DELETE

  • R – RULE

  • x – 外部キー制約を作成する権限を付与します (REFERENCES)。

  • t – TRIGGER

  • X – EXECUTE

  • U – USAGE

  • C – CREATE

  • T – CREATE TEMP

  • D – DROP

  • P – TRUNCATE

  • A – ALTER

  • * - 前述の権限を付与されるユーザーが、他のユーザーに同じ権限を付与できることを示します (WITH GRANT OPTION)。

すべての権限のコード文字をビットマスク位置順に保持する文字列は、「arwdRxtXUCTDPA」のようになります。

grantor

権限を付与したユーザーの名前。

次の例は、ユーザー admin が WITH GRANT OPTION を含むすべての権限をユーザー dbuser に付与したことを示します。

dbuser=r*a*w*d*x*X*/admin

次のクエリはデータベースに対して定義されているすべてのデフォルト権限を返します。

select pg_get_userbyid(d.defacluser) as user, n.nspname as schema, case d.defaclobjtype when 'r' then 'tables' when 'f' then 'functions' end as object_type, array_to_string(d.defaclacl, ' + ') as default_privileges from pg_catalog.pg_default_acl d left join pg_catalog.pg_namespace n on n.oid = d.defaclnamespace; user | schema | object_type | default_privileges -------+--------+-------------+------------------------------------------------------- admin | tickit | tables | user1=r/admin + "group group1=a/admin" + user2=w/admin

前の例の結果は、ユーザー admintickit スキーマで作成するすべての新しいテーブルにおいて、adminuser1 には SELECT 権限を、group1には INSERT 権限を、user2には UPDATE 権限を付与することを示します。