Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

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

密码(可能是已加密);无则为空值。格式取决于加密形式。

rolvaliduntil timestamptz

密码过期时间(仅用于密码身份验证);无过期时间则为空值


对于 MD5 加密密码,rolpassword 列将以字符串 md5 开始,后跟 32 个字符十六进制 MD5 哈希值。MD5 哈希值是用户的密码与其用户名进行级联所得。例如,如果用户 joe 有密码 xyzzyPostgreSQL 将存储 xyzzyjoe 的 md5 哈希值。

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

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

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

不遵循其中任何一种格式的密码均被认为未加密。