-- Leitura da identidade e dos privilégios. Não grava. select project_name, project_ref from adaptador_guard.adapter_project_identity(); select p.proname, p.prosecdef, p.proconfig from pg_catalog.pg_proc p join pg_catalog.pg_namespace n on n.oid = p.pronamespace where n.nspname = 'adaptador_guard' order by p.proname; select c.relname, c.relrowsecurity, c.relforcerowsecurity from pg_catalog.pg_class c join pg_catalog.pg_namespace n on n.oid = c.relnamespace where n.nspname = 'adaptador_guard' and c.relkind = 'r' order by c.relname; select 'public' as papel, has_schema_privilege('public', 'adaptador_guard', 'usage') as uso, has_table_privilege('public', 'adaptador_guard.project_identity', 'select') as leitura, has_table_privilege('public', 'adaptador_guard.project_identity', 'update') as alteracao, has_function_privilege('public', 'adaptador_guard.adapter_project_identity()', 'execute') as executar union all select r.rolname, has_schema_privilege(r.oid, 'adaptador_guard', 'usage'), has_table_privilege(r.oid, 'adaptador_guard.project_identity', 'select'), has_table_privilege(r.oid, 'adaptador_guard.project_identity', 'update'), has_function_privilege(r.oid, 'adaptador_guard.adapter_project_identity()', 'execute') from pg_catalog.pg_roles r where r.rolname in ('anon', 'authenticated', 'service_role', 'app_user', 'adaptador_web', 'adaptador_worker') order by papel; select item from pg_catalog.pg_db_role_setting s cross join lateral unnest(s.setconfig) as item where s.setdatabase = (select oid from pg_catalog.pg_database where datname = current_database()) and s.setrole = 0 order by item;