在 PostgreSQL 中,pg_shadow 是一个系统目录表,用于存储有关数据库用户(角色)的信息。然而,需要注意的是,从 PostgreSQL 10 版本开始,pg_shadow 表已被废弃,取而代之的是 pg_authid 表和 pg_roles 视图。

以下是 pg_roles 视图中的一些关键字段,用于替代 pg_shadow:

1. rolname: 用户(角色)的名称,唯一标识用户。

2. rolsuper: 指示用户是否是超级用户的布尔值。超级用户拥有系统中的最高权限。

3. rolinherit: 指示用户是否继承其父用户的权限的布尔值。

4. rolcreaterole: 指示用户是否有权创建其他用户的布尔值。

5. rolcreatedb: 指示用户是否有权创建数据库的布尔值。

6. rolcanlogin: 指示用户是否有权登录到数据库的布尔值。

7. rolreplication: 指示用户是否有权进行流复制的布尔值。

8. rolbypassrls: 指示用户是否绕过行级安全策略的布尔值。

使用 pg_roles 视图,你可以查询有关数据库中所有用户(角色)的信息。以下是一个简单的查询示例:
SELECT * FROM pg_roles;

这将返回所有用户(角色)的详细信息,包括用户名称、是否是超级用户、是否具有创建用户和数据库的权限等。请注意,如果你仍在使用较早版本的 PostgreSQL,你可能会在 pg_shadow 表中找到相似的信息,但最好尽早升级到支持 pg_roles 视图的版本。


转载请注明出处:http://www.zyzy.cn/article/detail/8892/PostgreSQL