# 52.8.pg_authid

目录pg_authid包含有关数据库授权标识符(角色)的信息。角色包含“用户”和“组”的概念。用户本质上只是一个角色登录标志设置。任何角色(有或没有登录) 可以担任其他成员的角色;看pg_auth_members.

由于此目录包含密码,因此不得公开阅读。pg_roles是一个公众可读的观点pg_authid这会清空密码字段。

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

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

表 52.8.pg_authid

列类型

描述
样的 样的

行标识符
名字 姓名

角色名称
超级英雄 布尔

角色具有超级用户权限
罗林继承 布尔

角色自动继承其所属角色的权限
角色创建角色 布尔

角色可以创建更多角色
角色创建数据库 布尔

角色可以创建数据库
登录 布尔

角色可以登录。也就是说,这个角色可以作为初始会话授权标识符。复制
布尔 角色是复制角色。

复制角色可以启动复制连接并创建和删除复制槽。rolbypassrls
布尔 角色绕过每个行级安全策略,请参阅

第 5.8 节了解更多信息。rolconnlimit
整数4 对于可以登录的角色,这将设置此角色可以建立的最大并发连接数。

-1 表示没有限制。
密码 文本

密码(可能已加密);如果没有,则为空。格式取决于所使用的加密形式。
有效期限 时间戳记

密码过期时间(仅用于密码认证);如果没有过期,则为 null

对于 MD5 加密密码,密码列将以字符串开头md5后跟一个 32 个字符的十六进制 MD5 哈希。MD5 散列将用户的密码与用户名连接起来。例如,如果用户有密码xyzzy, PostgreSQL 将存储 md5 哈希xyzzyjoe.

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

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

在哪里*,存储密钥服务器密钥*采用 Base64 编码格式。此格式与指定的格式相同RFC 5803 (opens new window).

假定不遵循这两种格式的密码是未加密的。