Criar e alterar permissões de esquema para uma função de login no banco de dados Postgresql

1

Eu tenho um banco de dados Postgresql com 3 esquemas (2 definidos pelo usuário e 1 público).

Eu tenho um script que faz backup dos esquemas definidos pelo usuário e, em seguida, descarta os do esquema.

Agora, depois de fazer algumas operações, desejo restaurar os esquemas definidos pelo usuário a partir do backup do esquema (schema_backup.out).

Quando executo

cat schema_backup.out | psql xx_db_name_xx

Estou recebendo a seguinte mensagem de erro

ERROR:  permission denied for database xx_db_name_xx
ERROR:  schema "aaaa" does not exist 
ERROR:  permission denied for database xx_db_name_xx
ERROR:  schema "bbbb" does not exist 
ERROR:  must be owner of database xx_db_name_xx

Quando executo o mesmo comando que o usuário Admin está executando bem. Mas, quando eu executo como um usuário 'xxxxxx' falhando.

Alguém pode me guiar, quais permissões / direitos devem ser adicionados a 'xxxxxx' para restaurar o esquema?

    
por Trip 10.01.2012 / 20:07

1 resposta

1

O Postgres já respondeu isso por você: ERROR: must be owner of database xx_db_name_xx .

Você precisa ALTER the DATABASE e SET OWNER para ser o usuário que está tentando fazer alterações no esquema. ( Consulte o manual do Postgres para obter informações sobre a declaração ALTER DATABASE SQL )

Geralmente é mais fácil restaurar bancos de dados como o superusuário do Postgres - Isso evita quaisquer problemas de permissões, e normalmente a propriedade / permissões são restauradas quando você restaura o banco de dados.

    
por 10.01.2012 / 20:43

Tags