pg_parameter_acl

存储有关各个 GUC 权限的信息的系统表

pg_parameter_acl 是一个 系统目录 表,用于存储有关 配置参数 的信息,这些参数的权限已明确授予一个或多个角色。

pg_parameter_aclPostgreSQL 15 中添加。

用法

PostgreSQL 15 开始,可以对各个 配置参数 明确地授予各个数据库用户的权限,使用语法 GRANT SET ON PARAMETERGRANT ALTER SYSTEM ON PARAMETER(并相应地使用 REVOKE 删除)。这些权限通过 pg_parameter_acl 进行跟踪。

更改历史记录

示例

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

分类

配置系统目录

另请参阅

GRANTREVOKE

反馈

提交关于 "pg_parameter_acl" 的任何评论、建议或更正 此处