Preciso ser capaz de atribuir uma função aos usuários para permitir que eles façam o que quiserem nas tabelas de um esquema. Preciso fazer isso sem atribuir privilégios de superusuário no Postgres.
Já descobri como atribuir privilégios granulares. Também descobri que posso atribuir ao usuário a mesma função que possui a tabela, e ele pode eliminar a referida tabela.
No entanto, o usuário em questão não pode alterar tabelas que não são de sua propriedade. Acho que é porque quando eu crio uma nova tabela com um usuário diferente, essa nova tabela pertence automaticamente ao usuário que a criou, e não à função de administrador atribuída ao usuário em questão.
Existe uma maneira de contornar isso? As tabelas podem ser criadas por qualquer pessoa. Existe alguma maneira de atribuir uma função privada/especial que não seja de superusuário para permitir que o usuário em questão altere e elimine tabelas que não são de sua propriedade?
Não, não há como evitar isso: apenas um membro da função proprietária ou um superusuário pode
ALTER
ouDROP
um objeto.Talvez você possa tornar o usuário que irá descartar os objetos um membro de todos os outros usuários?