27

更改 Postgres 数据库对象的默认权限后,如何查看它们?

例如,如果您role_name为 schema 中创建的所有表授予所有权限schema_name

ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT ALL ON TABLES TO role_name;
4

3 回答 3

45

使用 psql(1) 交互式终端

还有另一种方式,至少在最近的 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

于 2015-02-13T11:53:21.613 回答
29

使用 SQL 查询

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 = 函数

这些访问权限仅适用于模式命名空间中新创建的对象。

于 2013-01-28T03:31:09.937 回答
2

如果您加入pg_default_actpg_namespace您将仅列出在架构中使用的默认权限。

于 2019-09-26T01:17:33.853 回答