47.8. pg_authid
pg_authid
包含有关数据库认证标识符(角色)的信息。 一个角色体现"用户"和"组"的概念。一个用户实际上只是一个设置了 rolcanlogin
标志的角色。任何角色(不管是否设置了rolcanlogin
标志) 都可以有其它角色做为成员;参阅pg_auth_members
。
因为这个系统表包含口令,所以它不是公共可读的。pg_roles
是一个在pg_authid
上的可读视图,只是把口令域填成了空白。
Chapter 20包含用户和权限管理的详细信息。
因为用户标识是集群范围的,pg_authid
在一个集群里所有的数据库之间是共享的:每个集群只有一个pg_authid
拷贝,而不是每个数据库一个。
Table 47-8. pg_authid
字段
名字 | 类型 | 描述 |
---|---|---|
oid |
oid |
行标识符(隐藏属性; 必须明确选择) |
rolname |
name |
角色名称 |
rolsuper |
bool |
角色拥有超级用户权限 |
rolinherit |
bool |
角色自动继承其所属角色的权限 |
rolcreaterole |
bool |
角色可以创建更多角色 |
rolcreatedb |
bool |
角色可以创建数据库 |
rolcatupdate |
bool |
角色可以直接更新系统表。如果没有设置这个字段为真,即使超级用户也不能这么做。 |
rolcanlogin |
bool |
角色可以登录,也就是说,这个角色可以给予会话认证标识符。 |
rolreplication |
bool |
角色是一个复制的角色。也就是说,这个角色可以发起流复制 (参阅Section 25.2.5)和使用 pg_start_backup 和pg_stop_backup 设置/取消设置系统备份模式。 |
rolconnlimit |
int4 |
对于可以登录的角色,限制其最大并发连接数量。-1 表示没有限制。 |
rolpassword |
text |
口令(可能是加密的);如果没有则为 NULL。如果密码是加密的,该字段将以md5 字符串开始,后面跟着一个32字符的十六进制MD5哈希值。该MD5哈希将是用户的口令加上用户名。 例如,如果用户joe 的口令为xyzzy ,PostgreSQL 将存储MD5哈希为xyzzyjoe 。不遵从这个格式的密码被假设为未加密的。 |
rolvaliduntil |
timestamptz |
口令失效时间(只用于口令认证);如果没有失效期,则为 null |