目录pg_authid
包含关于数据库授权标识符(角色)的信息。角色把“用户”和“组”的概念包含在内。一个用户实际上就是一个rolcanlogin
标志被设置的角色。任何角色(不管rolcanlogin
设置与否)都能够把其他角色作为成员,参见pg_auth_members
。
由于这个目录包含口令,它不能是公共可读的。pg_roles
是在pg_authid
上的一个公共可读视图,它隐去了口令域。
由于用户标识符是集簇范围的,pg_authid
在一个集簇的所有数据库之间共享:在一个集簇中只有一份pg_authid
拷贝,而不是每个数据库一份。
列名称 | 列类型 | 描述 |
|
| 行标识符。 |
|
| 角色名。 |
|
| 角色有超级用户权限。 |
|
| 如果本角色是另一个角色的成员,本角色是否自动另一个角色的权限。 |
|
| 角色能创建更多角色。 |
|
| 角色能创建数据库。 |
|
| 角色是否能登录。即该角色是否能够作为初始会话授权标识符。 |
|
| 角色是一个复制角色。复制角色可以启动复制连接并且创建和删除复制槽。 |
|
| 角色是否可以绕过所有的行级安全性策略。 |
|
| 对于可以登录的角色,本列设置该角色可以同时发起最大连接数。-1表示无限制。 |
|
| 密码(可能被加密过),如果没有口令则为空。格式取决于使用的加密方法的形式。 |
|
| 口令过期时间(只用于口令鉴定),如果永不过期则为空。 |
对于一个MD5加密的口令,rolpassword
列将由字符串md5
后面跟上一个 32 字符的十六进制 MD5 哈希值构成。MD5 哈希值将是该用户的口令串接上它们的用户名。例如,如果用户joe
的口令是xyzzy
,则本数据库将存储xyzzyjoe
的 md5 哈希。
如果口令采用 SCRAM-SHA-256 加密,它的格式是:
SCRAM-SHA-256$<iteration count>:<salt>$<StoredKey>:<ServerKey>
其中salt
、StoredKey
和ServerKey
是 Base64 编码格式。这种格式与 RFC 5803 说明的格式相同。
不遵守上述格式的口令被假定为未加密。