更改了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/9.0/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 = relation (table, view), S = sequence, f = function。
这些访问权限仅适用于架构名称空间中的新创建的对象。
如果将pg_default_act
加入到pg_namespace
,则将仅列出在架构中使用授予的默认特权。