我用
\dg
和 \du
显示用户(角色),然后有相同的结果,如下所示:
postgres=# \dg
List of roles
Role name | Attributes
-----------+------------------------------------------------------------
anna |
john |
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS
postgres=# \du
List of roles
Role name | Attributes
-----------+------------------------------------------------------------
anna |
john |
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS
我也看了
\dg
和\du
的解释,如下所示:
postgres=# \?
...
Informational
...
\dg[S+] [PATTERN] list roles
...
\du[S+] [PATTERN] list roles
...
我的问题:
\dg
和 \du
有什么区别?\dg
和 \du
相同,那么其中之一现在或将来会被弃用吗?使用
psql -E
你可以看到它们是完全相同的东西:
SELECT r.rolname, r.rolsuper, r.rolinherit,
r.rolcreaterole, r.rolcreatedb, r.rolcanlogin,
r.rolconnlimit, r.rolvaliduntil,
ARRAY(SELECT b.rolname
FROM pg_catalog.pg_auth_members m
JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
WHERE m.member = r.oid) as memberof
, r.rolreplication
, r.rolbypassrls
FROM pg_catalog.pg_roles r
WHERE r.rolname !~ '^pg_'
ORDER BY 1;
两者均未弃用。不能保证它们将来不会被替换或弃用,但通常不太可能。