Estou com uma situação completamente curiosa com um dbms postgres. Eu instalei o banco de dados e devido a uma configuração incorreta dos meus scripts de instalação, tornei a função de superusuário um usuário comum. Agora eu tenho uma instalação completamente nova do postgres com apenas o banco de dados de modelo e um único usuário 'postgres' que não pode fazer praticamente nada. Como posso tornar o usuário postgres superusuário novamente?
Tentei reinstalar o servidor no ubuntu 12.04 aptitude reinstall postgresql-9.1
, mas a função parece não ser afetada. Muito provavelmente porque a reinstalação não afeta os arquivos onde as funções são gravadas.
Os direitos de superusuário não estão em nenhum arquivo de configuração, eles fazem parte da
pg_catalog.pg_authid
tabela do banco de dados, que é compartilhada entre todos os bancos de dados em uma instalação do PostgreSQL.Você precisa parar o servidor PostgreSQL e reiniciá-lo no modo de usuário único , onde está sempre executando como superusuário.
Lá, você pode
ALTER USER myuser SUPERUSER
conceder direitos de superusuário. Saia do modo de usuário único e inicie o backup do servidor.Os detalhes exatos dependem um pouco da distro e da versão, mas algo como:
Em alguns sistemas, pode ser necessário usar um caminho explícito para o
postgres
executável, como/usr/pgsql-9.1/bin/postgres
. Novamente, os caminhos podem variar com base na versão e distribuição.Para Windows é necessário:
runas /user:postgres cmd
)execute o postgres no modo de usuário único
onde o banco de dados relevante é inferido do nome de usuário (postgres)
Execute os comandos necessários para que seu usuário volte ao anormal (super):
Ctrl-C para sair
Observe que o 'bug' no PGAdmin 16.1 anterior relacionado à abertura das propriedades de um usuário pode ter sido a causa.