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–function

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

defaclacl aclitem[]

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

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

{ username=privilegestring/grantor }

username

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

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

{ "group groupname=privilegestring/grantor" }

privilegestring

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

有効な値は次のとおりです。

  • r–SELECT (読み込み)

  • a – INSERT (付加)

  • w–UPDATE (書き込み)

  • d–DELETE

  • x – 外部キー制限 (リファレンス) を作成する権限を付与します。

  • X–EXECUTE

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

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 権限を付与することを示します。