Semanas atrás, quando eu estava aprendendo a segurança do PostgreSQL, estava tentando fazer algumas coisas estranhas (embora não recomendadas) para remover o esquema público do navegador de objetos no pgadmin. Felizmente, tenho todos os comandos que executei e todos os comandos de desfazer que executei, mas ainda pareço ter um objeto de função que não consigo descartar. Estou recebendo um erro ao tentar DROP ROLE test_role_11, mas ainda pareço ter dependências de objeto no esquema público. Você pode me ajudar a encontrar a consulta para descobrir o que é? Você também pode me ajudar a encontrar o comando REVOKE correto (ou outro) para desfazer as dependências e/ou privilégios, dada a primeira consulta? PUBLIC parece ser seu próprio desafio e não uma função real, então não tenho certeza de como escrever a consulta. Eu tentei usar perguntas antigas, mas não cheguei muito longe.
Exceção/Erro:
a função "test_role_11" não pode ser descartada porque alguns objetos dependem dela DETALHE: privilégios para o esquema público
Aqui estão as consultas que fiz.
CREATE ROLE test_role_11
--NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT NOLOGIN NOREPLICATION NOBYPASSRLS
REVOKE ALL ON ALL TABLES IN SCHEMA pg_catalog FROM public, me;
--GRANT ALL ON ALL TABLES IN SCHEMA pg_catalog TO public, me;
GRANT SELECT ON ALL TABLES IN SCHEMA pg_catalog TO test_role_11;
--REVOKE SELECT ON ALL TABLES IN SCHEMA pg_catalog FROM test_role_11;
GRANT test_role_11 TO me
--REVOKE object_browser FROM me;
--GRANT SELECT ON TABLE aaa IN SCHEMA pg_catalog TO test_role_11;
GRANT SELECT ON TABLE pg_catalog."aaa" TO test_role_11;
GRANT SELECT ON TABLE staging."aaa" TO test_role_11;
GRANT SELECT ON TABLE pg_database TO test_role_11;
Eles não encontraram nenhuma dependência de objeto para minha função.
Localizar objetos vinculados a uma função do PostgreSQL