On this page
52.8. pg_authid
目录pg_authid
包含有关数据库授权标识符(角色)的信息。角色包含“用户”和“组”的概念。用户本质上只是设置了rolcanlogin
标志的角色。任何角色(具有rolcanlogin
或不具有rolcanlogin
)都可以具有其他角色作为成员。参见pg_auth_members。
由于该目录包含密码,因此不得公开读取。 pg_roles是pg_authid
上的公共可读视图,该视图空白了密码字段。
Chapter 21包含有关用户和特权 Management 的详细信息。
由于用户身份在整个群集范围内,因此在群集的所有数据库中共享pg_authid
:每个群集只有一个pg_authid
的副本,而不是每个数据库一个。
表 52.8. pg_authid
列
Name | Type | Description |
---|---|---|
oid |
oid |
行标识符(隐藏属性;必须显式选择) |
rolname |
name |
Role name |
rolsuper |
bool |
角色具有超级用户权限 |
rolinherit |
bool |
角色自动继承其所属角色的特权 |
rolcreaterole |
bool |
角色可以创建更多角色 |
rolcreatedb |
bool |
角色可以创建数据库 |
rolcanlogin |
bool |
角色可以登录。也就是说,可以将此角色作为初始会话授权标识符 |
rolreplication |
bool |
角色是复制角色。复制角色可以启动复制连接并创建和删除复制插槽。 |
rolbypassrls |
bool |
角色绕过每个行级安全策略,有关更多信息,请参见Section 5.7。 |
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>
其中* salt
, StoredKey
和 ServerKey
*为 Base64 编码格式。此格式与 RFC 5803 指定的格式相同。
假定不遵循这两种格式的密码都是未加密的。