Re: psql: Add role's membership options to the \du+ command
Pavel Luzanov <p.luzanov@postgrespro.ru>
From: Pavel Luzanov <p.luzanov@postgrespro.ru>
To: "Jonathan S. Katz" <jkatz@postgresql.org>,
"David G. Johnston" <david.g.johnston@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Robert Haas <robertmhaas@gmail.com>,
David Zhang <david.zhang@highgo.ca>,
"pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>,
rmt@lists.postgresql.org, horikyota.ntt@gmail.com
Date: 2023-05-18T13:07:22Z
Lists: pgsql-hackers
On 18.05.2023 05:42, Jonathan S. Katz wrote: > That said, from a readability standpoint, it was easier for me to > follow the tabular form vs. the sentence form. May be possible to reach a agreement on the sentence form. Similar descriptions used for referential constraints in the \d command: create table t1 (id int primary key);create table t2 (id int references t1(id));\d t2 Table "public.t2" Column | Type | Collation | Nullable | Default --------+---------+-----------+----------+--------- id | integer | | | Foreign-key constraints: "t2_id_fkey" FOREIGN KEY (id) REFERENCES t1(id)As for tabular form it looks more natural to have a separate psql command for pg_auth_members system catalog. Something based on this query:SELECT r.rolname role, m.rolname member, admin_option admin, inherit_option inherit, set_option set, g.rolname grantorFROM pg_catalog.pg_auth_members pam JOIN pg_catalog.pg_roles r ON (pam.roleid = r.oid) JOIN pg_catalog.pg_roles m ON (pam.member = m.oid) JOIN pg_catalog.pg_roles g ON (pam.grantor = g.oid)WHERE r.rolname !~ '^pg_'ORDER BY role, member, grantor; role | member | admin | inherit | set | grantor ------------------+------------------+-------+---------+-----+------------------ regress_du_role0 | regress_du_admin | t | t | t | postgres regress_du_role0 | regress_du_role1 | t | t | t | regress_du_admin regress_du_role0 | regress_du_role1 | f | t | f | regress_du_role1 regress_du_role0 | regress_du_role1 | f | f | t | regress_du_role2 regress_du_role0 | regress_du_role2 | t | f | f | regress_du_admin regress_du_role0 | regress_du_role2 | f | t | t | regress_du_role1 regress_du_role0 | regress_du_role2 | f | f | f | regress_du_role2 regress_du_role1 | regress_du_admin | t | t | t | postgres regress_du_role1 | regress_du_role2 | t | f | t | regress_du_admin regress_du_role2 | regress_du_admin | t | t | t | postgres(10 rows)But is it worth inventing a new psql command for this? ----- Pavel Luzanov
Commits
-
Add psql \drg command to display role grants.
- d65ddaca93f6 17.0 landed
- 0a1d2a7df852 16.0 landed