45.8. pg_authid

catalog pg_authid包含有关数据库认证标识符(角色)的信息。一个角色体现"用户""组"的概念。 一个用户实际上只是一个设置了rolcanlogin标志的角色。任何角色(不管设置了rolcanlogin)标志)都可以有其它角色做为成员; 参阅pg_auth_members

因为这个系统表包含口令,所以它不是公共可读的。 pg_roles是一个在pg_authid上的视图,只是把口令域填成了空白。

Chapter 20包含用户和权限管理的详细信息。

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

Table 45-8. pg_authid Columns

名称类型描述
rolnamename角色名称
rolsuperbool角色拥有超级用户权限
rolinheritbool角色自动继承其所属角色的权限
rolcreaterolebool角色可以创建更多角色
rolcreatedbbool角色可以创建数据库
rolcatupdatebool 角色可以直接更新系统表。如果没有设置这个字段为真,即使超级用户也不能这么做。
rolcanloginbool 角色可以登录,也就是说,这个角色可以给予会话认证标识符。
rolconnlimitint4 对于可以登录的角色,限制其最大并发连接数量。-1表示没有限制。
rolpasswordtext 密码(可能是加密的),如果没有则空。如果密码 加密,此列将包含字符串MD5伴随 32字符的十六进制的MD5哈希。 MD5哈希将成为 用户的密码连接到自己的用户名(例如,如果 用户joe密码xyzzy,PostgreSQL将存储 xyzzyjoe的md5哈希)。
rolvaliduntiltimestamptz 口令失效时间(只用于口令认证);如果没有失效期,则为NULL