PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Revogar o acesso ao banco de dados postgres para uma função


Este problema não tem nada a ver com o banco de dados postgres . Em vez disso, você deseja manipular o catálogo do banco de dados atual. Cada banco de dados tem um catálogo de informações sobre todos os objetos no esquema pg_catalog , e em formato compatível com os padrões no esquema information_schema , portanto, você deve restringir o acesso àqueles para a função em questão e também para o public função porque cada função também é membro dessa função:
REVOKE ALL PRIVILEGES ON SCHEMA pg_catalog FROM newrole;
REVOKE ALL PRIVILEGES ON SCHEMA pg_catalog FROM public;
REVOKE ALL PRIVILEGES ON SCHEMA information_schema FROM newrole;
REVOKE ALL PRIVILEGES ON SCHEMA information_schema FROM public;

No entanto, o sistema nem sempre respeita essa restrição geral, os catálogos existem por um motivo e fornecem funções importantes no banco de dados. Particularmente, as funções ainda podem ser executadas.

Em geral, você não quer mexer nos catálogos a menos que você realmente saiba o que está fazendo .