pg_authid 包含有关数据库认证标识符(角色)的信息。一个角色体现"用户"和"组"的概念。一个用户实际上只是一个设置了 rolcanlogin 标志的角色。任何角色(不管设置了 rolcanlogin)标志)都可以有其它角色做为成员;参阅 pg_auth_members
因为这个系统表包含口令,所以它不是公共可读的。pg_roles 是一个在 pg_authid 上的视图,只是把口令域填成了空白。
章18 包含用户和权限管理的详细信息。
因为用户标识是集群范围的,pg_authid 在一个集群里所有的数据库之间是共享的:每个集群只有一个 pg_authid 拷贝,而不是每个数据库一个。
表43-8. pg_authid 字段
名字 | 类型 | 描述 | |
---|---|---|---|
rolname | name | 角色名称 | |
rolsuper | bool | 角色拥有超级用户权限 | |
rolinherit | bool | 角色自动继承其所属角色的权限 | |
rolcreaterole | bool | 角色可以创建更多角色 | |
rolcreatedb | bool | 角色可以创建数据库 | |
rolcatupdate | bool | 角色可以直接更新系统表。如果没有设置这个字段为真,即使超级用户也不能这么做。 | |
rolcanlogin | bool | 角色可以登录,也就是说,这个角色可以给予会话认证标识符。 | |
rolconnlimit | int4 | 对于可以登录的角色,限制其最大并发连接数量。-1 表示没有限制。 | |
rolpassword | text | 口令(可能是加密的);如果没有则为 NULL | |
rolvaliduntil | timestamptz | 口令失效时间(只用于口令认证);如果没有失效期,则为 NULL | |
rolconfig | text[] | 运行时配置变量的会话缺省 |