@@ -40,21 +40,35 @@ select
4040 m.admin_option
4141from
4242 pg_roles r
43- left join
43+ join
4444 pg_auth_members m on r.oid = m.member
4545left join
4646 pg_roles g on m.roleid = g.oid
47- where r.rolname in ('pg_create_subscription', 'pg_maintain', 'pg_use_reserved_connections')
48- or g.rolname in ('pg_create_subscription', 'pg_maintain', 'pg_use_reserved_connections')
4947order by
5048 r.rolname, g.rolname;
51- member | member_of (can become) | admin_option
52- -----------------------------+------------------------+--------------
53- pg_create_subscription | |
54- pg_maintain | |
55- pg_use_reserved_connections | |
56- postgres | pg_create_subscription | f
57- (4 rows)
49+ member | member_of (can become) | admin_option
50+ -------------------------+------------------------+--------------
51+ authenticator | anon | f
52+ authenticator | authenticated | f
53+ authenticator | service_role | f
54+ pg_monitor | pg_read_all_settings | f
55+ pg_monitor | pg_read_all_stats | f
56+ pg_monitor | pg_stat_scan_tables | f
57+ pgsodium_keyholder | pgsodium_keyiduser | f
58+ pgsodium_keymaker | pgsodium_keyholder | f
59+ pgsodium_keymaker | pgsodium_keyiduser | f
60+ postgres | anon | t
61+ postgres | authenticated | t
62+ postgres | authenticator | t
63+ postgres | pg_create_subscription | f
64+ postgres | pg_monitor | t
65+ postgres | pg_read_all_data | t
66+ postgres | pg_signal_backend | t
67+ postgres | pgtle_admin | f
68+ postgres | service_role | t
69+ supabase_read_only_user | pg_read_all_data | f
70+ supabase_storage_admin | authenticator | f
71+ (20 rows)
5872
5973-- Check version-specific privileges of the roles on the schemas
6074select schema_name, privilege_type, grantee, default_for
@@ -109,3 +123,41 @@ order by schema_order, schema_name, privilege_type, grantee, default_for;
109123 storage | MAINTAIN | service_role | postgres
110124(28 rows)
111125
126+ -- version specific role memberships
127+ select
128+ r.rolname as member,
129+ g.rolname as "member_of (can become)",
130+ m.admin_option
131+ from
132+ pg_roles r
133+ left join
134+ pg_auth_members m on r.oid = m.member
135+ left join
136+ pg_roles g on m.roleid = g.oid
137+ where r.rolname not in ('pg_create_subscription', 'pg_maintain', 'pg_use_reserved_connections')
138+ and g.rolname not in ('pg_create_subscription', 'pg_maintain', 'pg_use_reserved_connections')
139+ order by
140+ r.rolname, g.rolname;
141+ member | member_of (can become) | admin_option
142+ -------------------------+------------------------+--------------
143+ authenticator | anon | f
144+ authenticator | authenticated | f
145+ authenticator | service_role | f
146+ pg_monitor | pg_read_all_settings | f
147+ pg_monitor | pg_read_all_stats | f
148+ pg_monitor | pg_stat_scan_tables | f
149+ pgsodium_keyholder | pgsodium_keyiduser | f
150+ pgsodium_keymaker | pgsodium_keyholder | f
151+ pgsodium_keymaker | pgsodium_keyiduser | f
152+ postgres | anon | t
153+ postgres | authenticated | t
154+ postgres | authenticator | t
155+ postgres | pg_monitor | t
156+ postgres | pg_read_all_data | t
157+ postgres | pg_signal_backend | t
158+ postgres | pgtle_admin | f
159+ postgres | service_role | t
160+ supabase_read_only_user | pg_read_all_data | f
161+ supabase_storage_admin | authenticator | f
162+ (19 rows)
163+
0 commit comments