ALTER DEFAULT PRIVILEGES 是一个用于定义默认对象访问权限的实用命令。
ALTER DEFAULT PRIVILEGES 添加于 PostgreSQL 9.0。
用法
此命令定义了指定用户或角色将在 ALTER DEFAULT PRIVILEGES 执行后创建的对象上拥有的权限。它不会追溯应用于现有对象。
变更历史
- PostgreSQL 18
- PostgreSQL 16
- 现在需要权限而不是成员资格 (commit 48a257d4)
- PostgreSQL 10
- 添加了修改模式上权限的支持 (commit ab89e465)
- PostgreSQL 9.2
- 添加了修改类型上权限的支持 (commit 72920557)
- PostgreSQL 9.0
- 已添加 (commit 249724cb)
示例
ALTER DEFAULT PRIVILEGES 的用法示例
postgres=# CREATE SCHEMA someschema; CREATE SCHEMA
postgres=# ALTER DEFAULT PRIVILEGES IN SCHEMA someschema GRANT SELECT ON TABLES TO foo; ALTER DEFAULT PRIVILEGES
postgres=# \ddp Default access privileges Owner | Schema | Type | Access privileges ----------+------------+-------+------------------- postgres | someschema | table | foo=r/postgres (1 row)
参考资料
- PostgreSQL 文档: ALTER DEFAULT PRIVILEGES
有用链接
- PostgreSQL ALTER DEFAULT PRIVILEGES – 权限详解 - 2023 年 5 月 Laurenz Albe / CyberTec 的博客文章
