更改 Postgres 数据库对象的默认权限后,如何查看它们?
例如,如果您role_name
为 schema 中创建的所有表授予所有权限schema_name
:
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT ALL ON TABLES TO role_name;
更改 Postgres 数据库对象的默认权限后,如何查看它们?
例如,如果您role_name
为 schema 中创建的所有表授予所有权限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;
其中r =defaclobjtype
关系(表,视图),S = 序列,f = 函数。
这些访问权限仅适用于模式命名空间中新创建的对象。
如果您加入pg_default_act
,pg_namespace
您将仅列出在架构中使用的默认权限。