Qual seria a instrução sql (que o usuário postgres executará) para que seja impossível para o usuário postgres user1
excluir (soltar) bancos de dados?
Ou posso adicionar uma regra em algum arquivo de configuração?
Qual seria a instrução sql (que o usuário postgres executará) para que seja impossível para o usuário postgres user1
excluir (soltar) bancos de dados?
Ou posso adicionar uma regra em algum arquivo de configuração?
No PostgreSQL, apenas o proprietário de um banco de dados pode descartar um banco de dados . (Superusuários podem descartar bancos de dados, mas esse é um problema diferente.) Portanto, alterar o proprietário é a maneira mais direta de impedir que o usuário1 exclua quaisquer bancos de dados.
Corrija isso com ALTER DATABASE .
Para devolver permissões específicas ao user1, use GRANT . Você provavelmente está procurando por algo como
Mas leia primeiro a documentação do GRANT. Você pode precisar de WITH GRANT OPTION, permissões em sequências, algo menor que ALL PRIVILEGES e assim por diante.
Regras do Postgresql para impedir que um tipo de evento aconteça em um objeto:
Listar regras do postgresql:
Suas informações de regra são codificadas em
pg_rewrite
pg_class
epg_namespace
:Em vez de uma regra não fazer nada na exclusão evitada, você pode chamar um procedimento. Você pode criar uma regra para fazer qualquer coisa, em qualquer tipo de evento em qualquer tipo de objeto de banco de dados.