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

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 10 已结束支持。 2022-11-10. 请参阅 当前版本手册.

51.8. pg_authid #

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

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

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

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

表 51.8. pg_authid 列

名称类型 描述
oidoid行标识符(隐藏属性,必须显式选择)
rolnamename 角色名
rolsuperbool 角色有超级用户权限
rolinheritbool 该角色是否会自动继承其所属角色的权限
rolcreaterolebool 角色能创建更多角色
rolcreatedbbool 角色能创建数据库
rolcanloginbool 角色是否能登录。即该角色是否能够作为初始会话授权标识符
rolreplicationbool 角色是一个复制角色。复制角色可以启动复制连接并且创建和删除复制槽。
rolbypassrlsbool 角色是否可以绕过所有的行级安全策略,详见第 5.7 节。
rolconnlimitint4 对于可以登录的角色,本列设置该角色能够建立的最大并发连接数。-1 表示无限制。
rolpasswordtext密码(可能已加密);如果未设置则为 NULL。其格式取决于所使用的加密方式。
rolvaliduntiltimestamptz 密码过期时间(仅用于密码认证);不设过期时间时为 NULL

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

如果密码使用 SCRAM-SHA-256 加密,其格式为:

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

其中,salt,StoredKey 和 ServerKey 采用 Base64 编码格式。此格式与 RFC 5803 指定的格式相同。

不符合上述任一种格式的密码将被视为未加密密码。

报告文档问题

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