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"的任何评论、建议或更正 此处