Skip to content

53.8.pg_authid#

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

由于此目录包含密码,因此它不得公开读取。pg_rolespg_authid上的公开可读视图,它将密码字段留空。

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

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

表 53.8.pg_authid

列类型

说明

oid oid

行标识符

rolname name

角色名称

rolsuper bool

角色具有超级用户权限

rolinherit bool

角色自动继承其成员角色的权限

rolcreaterole bool

角色可以创建更多角色

rolcreatedb bool

角色可以创建数据库

rolcanlogin bool

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

rolreplication bool

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

rolbypassrls bool

角色绕过所有行级安全策略,有关详细信息,请参见第 5.8 节

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中指定的格式相同。

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