Postgresデータベースオブジェクトのデフォルトの権限を変更した後、それらをどのように表示できますか?
たとえばrole_name
、スキーマで作成されたすべてのテーブルにすべての権限を付与すると、次のようになりますschema_name
。
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT ALL ON TABLES TO role_name;
Postgresデータベースオブジェクトのデフォルトの権限を変更した後、それらをどのように表示できますか?
たとえばrole_name
、スキーマで作成されたすべてのテーブルにすべての権限を付与すると、次のようになりますschema_name
。
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT ALL ON TABLES TO role_name;
少なくとも最近のPostgresバージョンでは、別の方法があります。コマンド
を使用する\ddp
Default access privileges
Owner | Schema | Type | Access privileges
----------------+--------+----------+-------------------
role_x | | function | =X/role_x
role_x | | sequence |
role_x | | table |
role_x | | type | =U/role_x
詳細については、こちらのメモセクションをご覧ください:
http ://www.postgresql.org/docs/current/static/sql-alterdefaultprivileges.html
SELECT
nspname, -- schema name
defaclobjtype, -- object type
defaclacl -- default access privileges
FROM pg_default_acl a JOIN pg_namespace b ON a.defaclnamespace=b.oid;
ここで、の値defaclobjtype
はr =関係(テーブル、ビュー)、S =シーケンス、f=関数です。
これらのアクセス権は、スキーマ名前空間内に新しく作成されたオブジェクトに対してのみ使用されます。
参加pg_default_act
するpg_namespace
と、スキーマで使用して付与されたデフォルトの権限のみが一覧表示されます。