pg_authid #
目录 pg_authid 包含关于数据库授权标识符
(角色)的信息。角色涵盖了“用户”和“组”的概念。
用户本质上是设置了 rolcanlogin
标志的角色。任何角色(无论是否设置 rolcanlogin)
都可以把其他角色作为成员;见
pg_auth_members。
由于该目录包含口令,它不能是公开可读的。
pg_roles
是 pg_authid 上一个公开可读的视图,
它会把口令字段隐去。
Chapter 21 包含关于用户和特权管理的详细信息。
由于用户身份是集群范围的,
pg_authid
在一个集群的所有数据库之间共享:每个集群只有一份
pg_authid,而不是每个数据库一份。
Table 52.8. \1 字段列说明
Column Type Description |
|---|
Row identifier |
Role name |
角色拥有超级用户特权 |
角色自动继承其作为成员的角色的特权 |
角色可以创建更多角色 |
角色可以创建数据库 |
角色可以登录。也就是说,此角色可以作为初始会话授权标识符。 |
角色是一个复制角色。复制角色可以发起复制连接, 并创建和删除复制槽。 |
角色绕过所有行级安全策略,更多信息见 Section 5.9。 |
对于可以登录的角色,此字段设置该角色可以建立的最大并发连接数。 -1 表示无限制。 |
加密的密码;如果没有则为空值。其格式取决于所使用的加密方式。 |
密码过期时间(仅用于密码认证);如果没有过期时间则为空值 |
对于 MD5 加密的口令,rolpassword 列
将以字符串 md5 开头,后跟一个 32 字符的十六进制
MD5 哈希。该 MD5 哈希是用户口令拼接其用户名后的哈希。
例如,如果用户 joe 的口令是
xyzzy,则 PostgreSQL
将存储 xyzzyjoe 的 MD5 哈希。
对 MD5 加密口令的支持已被弃用,并将在 PostgreSQL 的未来版本中被移除。有关迁移到其他口令类型的详情, 参阅 Section 20.3.2。
如果口令是用 SCRAM-SHA-256 加密的,则它具有如下格式:
SCRAM-SHA-256$<iteration count>:<salt>$<StoredKey>:<ServerKey>
其中 salt、StoredKey
和 ServerKey 均为 Base64 编码格式。
此格式与 RFC 5803
规定的格式相同。