pg_parameter_acl
是一个 系统目录 表,用于存储有关 配置参数 的信息,这些参数的权限已明确授予一个或多个角色。
pg_parameter_acl
在 PostgreSQL 15 中添加。
用法
从 PostgreSQL 15 开始,可以对各个 配置参数 明确地授予各个数据库用户的权限,使用语法 GRANT SET ON PARAMETER
或 GRANT ALTER SYSTEM ON PARAMETER
(并相应地使用 REVOKE
删除)。这些权限通过 pg_parameter_acl
进行跟踪。
更改历史记录
- PostgreSQL 15
- 添加 (提交 a0ffa885)
示例
pg_parameter_acl
的示例用法
postgres=> SET SESSION track_activities = off; ERROR: permission denied to set parameter "track_activities" postgres=> \c - postgres You are now connected to database "postgres" as user "postgres". postgres=# SELECT * FROM pg_parameter_acl ; oid | parname | paracl -----+---------+-------- (0 rows) postgres=# GRANT SET ON PARAMETER track_activities TO foo; GRANT postgres=# SELECT * FROM pg_parameter_acl; oid | parname | paracl -------+------------------+--------------------------------------- 16393 | track_activities | {postgres=sA/postgres,foo=s/postgres} (1 row) postgres=# \dconfig+ track_activities List of configuration parameters Parameter | Value | Type | Context | Access privileges ------------------+-------+------+-----------+---------------------- track_activities | on | bool | superuser | postgres=sA/postgres+ | | | | foo=s/postgres (1 row) postgres=# \c - foo You are now connected to database "postgres" as user "foo". postgres=> SET SESSION track_activities = off; SET
参考文献
- PostgreSQL 文档: pg_parameter_acl