↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1
开发快照。 PostgreSQL 20devel 尚未正式发布,内容仍可能变化。

52.8. pg_authid #

目录 pg_authid 包含关于数据库授权标识符(角色)的信息。角色涵盖了“用户”和“组”这两个概念。用户本质上只是设置了 rolcanlogin 标志的角色。任何角色(无论是否设置了 rolcanlogin)都可以拥有其他角色作为成员;参见 pg_auth_members。

由于这个目录包含密码,不得允许对它进行公开读取。pg_roles 是建立在 pg_authid 之上的公开可读视图,它会隐藏密码字段。

第 21 章包含关于用户和权限管理的详细信息。

由于用户身份是集簇范围的,pg_authid 在一个集簇的所有数据库之间共享:在一个集簇中只有一份 pg_authid 拷贝,而不是每个数据库一份。

表 52.8. pg_authid 列

列类型

描述

oid oid

行标识符

rolname name

角色名

rolsuper bool

角色有超级用户权限

rolinherit bool

该角色是否会自动继承其所属角色的权限

rolcreaterole bool

角色能创建更多角色

rolcreatedb bool

角色能创建数据库

rolcanlogin bool

角色是否能登录。即该角色是否能够作为初始会话授权标识符

rolreplication bool

角色是一个复制角色。复制角色可以启动复制连接并且创建和删除复制槽。

rolbypassrls bool

角色是否可以绕过所有的行级安全策略,详见第 5.10 节。

rolconnlimit int4

对于可以登录的角色,本列设置该角色能够建立的最大并发连接数。-1 表示无限制。

rolpassword text

加密后的密码;如果未设置则为 NULL。其格式取决于所使用的加密方式。

rolvaliduntil timestamptz

密码过期时间(仅用于密码认证);不设过期时间时为 NULL


对于一个 MD5 加密的密码,rolpassword 列将由字符串 md5 后面跟上一个 32 字符的十六进制 MD5 hash 值构成。MD5 hash 值通过在用户密码后拼接用户名再计算得到。例如,如果用户 joe 的密码是 xyzzy,则 PostgreSQL 将存储 xyzzyjoe 的 md5 hash。

警告

对 MD5 加密密码的支持已弃用,并将在 PostgreSQL 的未来版本中移除。迁移到其他密码类型的详细信息见第 20.5 节。

如果密码是使用 SCRAM-SHA-256 加密的,则格式如下:

SCRAM-SHA-256$<iteration count>:<salt>$<StoredKey>:<ServerKey>

其中 salt、StoredKey 和 ServerKey 都采用 Base64 编码表示。这种格式与 RFC 5803 中指定的格式相同。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.