2024年9月26日:PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不受支持的版本:11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1

51.8. pg_authid #

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

由于此目录包含密码,因此不能公开读取。pg_rolespg_authid上的一个公开可读视图,它会清空密码字段。

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

由于用户身份是集群范围的,因此pg_authid在集群的所有数据库之间共享:每个集群只有一个pg_authid副本,而不是每个数据库一个。

表 51.8. pg_authid

列 类型

描述

oid oid

行标识符

rolname name

角色名称

rolsuper bool

角色具有超级用户权限

rolinherit bool

角色自动继承其所属角色的权限

rolcreaterole bool

角色可以创建更多角色

rolcreatedb bool

角色可以创建数据库

rolcanlogin bool

角色可以登录。也就是说,此角色可以作为初始会话授权标识符。

rolreplication bool

角色是复制角色。复制角色可以发起复制连接并创建和删除复制槽。

rolbypassrls bool

角色绕过每个行级安全策略,有关更多信息,请参见第 5.9 节

rolconnlimit int4

对于可以登录的角色,这将设置此角色可以进行的最大并发连接数。-1 表示没有限制。

rolpassword text

密码(可能已加密);如果不存在,则为 null。格式取决于使用的加密形式。

rolvaliduntil timestamptz

密码过期时间(仅用于密码身份验证);如果未过期,则为 null


对于 MD5 加密的密码,rolpassword 列将以字符串md5开头,后跟 32 个字符的十六进制 MD5 哈希值。MD5 哈希值将是用户密码与其用户名连接的结果。例如,如果用户joe的密码为xyzzy,则PostgreSQL将存储xyzzyjoe的 md5 哈希值。

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

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

其中saltStoredKeyServerKey 采用 Base64 编码格式。此格式与RFC 5803中指定的格式相同。

不遵循上述任何格式的密码被认为是未加密的。

提交更正

如果您在文档中看到任何不正确的内容、与您对特定功能的体验不符的内容或需要进一步澄清的内容,请使用此表单报告文档问题。