PG_DEFAULT_ACL
デフォルトのアクセス権限に関する情報を格納します。デフォルトのアクセス権限の詳細については、「ALTER DEFAULT PRIVILEGES」参照してください。
PG_DEFAULT_ACL はすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できますが、通常のユーザーは自分のデータのみを表示できます。詳細については、「システムテーブルとビューのデータの可視性」を参照してください。
テーブルの列
列名 | データ型 | 説明 |
---|---|---|
defacluser | integer | リストされている権限が適用されるユーザーの ID。 |
defaclnamespace | oid | デフォルト権限が適用されるスキーマのオブジェクト ID。スキーマが指定されていない場合、デフォルト値は 0 です。 |
defaclobjtype | character |
デフォルト権限が適用されるオブジェクトの型。有効な値は次のとおりです。
|
defaclacl | aclitem[] |
指定されたユーザーまたはユーザーグループとオブジェクト型のデフォルト権限を定義する文字列。 権限がユーザーに付与される場合、文字列は次のようになります。
username 権限が付与されるユーザーの名前。username を省略すると、権限は PUBLIC に付与されます。 権限がユーザーグループに付与される場合、文字列は次のようになります。
privilegestring どの権限を付与するかを指定する文字列。 有効な値は次のとおりです。
grantor 権限を付与したユーザーの名前。 次の例は、ユーザー
|
例
次のクエリはデータベースに対して定義されているすべてのデフォルト権限を返します。
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
前の例の結果は、ユーザー admin
が tickit
スキーマで作成するすべての新しいテーブルにおいて、admin
が user1
には SELECT 権限を、group1
には INSERT 権限を、user2
には UPDATE 権限を付与することを示します。