|
| 1 | +-- pgbouncer schema owner |
| 2 | +select |
| 3 | + n.nspname as schema_name, |
| 4 | + r.rolname as owner |
| 5 | +from |
| 6 | + pg_namespace n |
| 7 | +join |
| 8 | + pg_roles r on n.nspowner = r.oid |
| 9 | +where |
| 10 | + n.nspname = 'pgbouncer'; |
| 11 | + schema_name | owner |
| 12 | +-------------+----------- |
| 13 | + pgbouncer | pgbouncer |
| 14 | +(1 row) |
| 15 | + |
| 16 | +-- pgbouncer schema functions with owners |
| 17 | +select |
| 18 | + n.nspname as schema_name, |
| 19 | + p.proname as function_name, |
| 20 | + r.rolname as owner |
| 21 | +from |
| 22 | + pg_proc p |
| 23 | +join |
| 24 | + pg_namespace n on p.pronamespace = n.oid |
| 25 | +join |
| 26 | + pg_roles r on p.proowner = r.oid |
| 27 | +where |
| 28 | + n.nspname = 'pgbouncer' |
| 29 | +order by |
| 30 | + p.proname; |
| 31 | + schema_name | function_name | owner |
| 32 | +-------------+---------------+---------------- |
| 33 | + pgbouncer | get_auth | supabase_admin |
| 34 | +(1 row) |
| 35 | + |
| 36 | +-- Tests role privileges on the pgbouncer objects |
| 37 | +WITH schema_obj AS ( |
| 38 | + SELECT oid, nspname |
| 39 | + FROM pg_namespace |
| 40 | + WHERE nspname = 'pgbouncer' |
| 41 | +) |
| 42 | +SELECT |
| 43 | + s.nspname AS schema, |
| 44 | + c.relname AS object_name, |
| 45 | + acl.grantee::regrole::text AS grantee, |
| 46 | + acl.privilege_type |
| 47 | +FROM pg_class c |
| 48 | +JOIN schema_obj s ON s.oid = c.relnamespace |
| 49 | +CROSS JOIN LATERAL aclexplode(c.relacl) AS acl |
| 50 | +WHERE c.relkind IN ('r', 'v', 'm', 'f', 'p') |
| 51 | + AND acl.privilege_type <> 'MAINTAIN' |
| 52 | +UNION ALL |
| 53 | +SELECT |
| 54 | + s.nspname AS schema, |
| 55 | + p.proname AS object_name, |
| 56 | + acl.grantee::regrole::text AS grantee, |
| 57 | + acl.privilege_type |
| 58 | +FROM pg_proc p |
| 59 | +JOIN schema_obj s ON s.oid = p.pronamespace |
| 60 | +CROSS JOIN LATERAL aclexplode(p.proacl) AS acl |
| 61 | +ORDER BY object_name, grantee, privilege_type; |
| 62 | + schema | object_name | grantee | privilege_type |
| 63 | +-----------+-------------+----------------+---------------- |
| 64 | + pgbouncer | get_auth | pgbouncer | EXECUTE |
| 65 | + pgbouncer | get_auth | postgres | EXECUTE |
| 66 | + pgbouncer | get_auth | supabase_admin | EXECUTE |
| 67 | +(3 rows) |
| 68 | + |
0 commit comments