(Nota: pouco disso é relevante para os leitores que usam o PostgreSQL 9.2 ou superior dos instaladores do EDB, que agora têm uma instalação padrão bastante simplificada usando o NETWORK SERVICE
, embora você ainda possa configurar outras contas) .
Eu usei net user postgres postgres
para redefinir a senha do meu banco de dados, mas em vez de uma mensagem de sucesso, estou recebendo"System error 5 has occurred. Access is denied."
Você redefiniu (ou tentou redefinir) a senha da conta de serviço. O PostgreSQL não será executado como administrador por razões de segurança e o instalador geralmente o configura com uma conta de usuário "postgres" no PostgreSQL 9.1 e versões anteriores 1 . No Windows, você não pode iniciar um serviço como usuário sem salvar a senha do usuário no registro, e é isso que o instalador faz.
Se você alterar a senha da conta de usuário do Windows postgres
, o serviço PostgreSQL não poderá mais ser iniciado. Portanto, não faça isso, você precisará corrigir a configuração do serviço para armazenar a senha atualizada.
Felizmente, acho que outro erro impediu você de fazer isso. Parece que você provavelmente está executando seu prompt de comando sem usar "Executar como Administrador" em uma conta de usuário sem privilégios do Windows ou em uma máquina com UAC, portanto, não está executando as permissões de acesso necessárias para alterar a senha do postgres
usuário.
Antes de tentar alterar essa senha, verifique se é realmente o que você deseja fazer. Qual é o problema que você está tentando resolver aqui? Você está tentando instalar uma atualização do banco de dados ou alguma outra coisa que esteja solicitando a senha do postgres
usuário do Windows?
Provavelmente você está apenas tentando fazer login no banco de dados. Para isso, você usa a senha (infelizmente completamente não relacionada) armazenada no banco de dados. Desde que você perdeu / esqueceu, você terá que redefini-lo:
- Encontre seu
pg_hba.conf
, geralmente emC:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
- Se necessário, defina as permissões para que você possa modificá-lo; sua conta de usuário poderá não conseguir fazer isso até que você use a guia segurança na caixa de diálogo de propriedades para conceder esse direito usando uma substituição de administrador. Como alternativa, encontre o notepad / notepad ++ no menu Iniciar, clique com o botão direito do mouse, escolha "Executar como administrador" e use Arquivo-> Abrir para abrir
pg_hba.conf
dessa maneira.
Edite-o para definir a linha "host" do usuário "postgres" no host "127.0.0.1/32" para "confiar". Você pode adicionar a linha se ela não estiver lá; basta inserir:
host all postgres 127.0.0.1/32 trust
host all postgres ::1/128 trust # if IPv6 is in use
antes de qualquer outra linha. (Você pode ignorar comentários, linhas começando com #
).
Reinicie o serviço PostgreSQL no painel de controle Serviços (iniciar-> executar-> services.msc
)
- conectar usando psql ou PgAdmin-III ou o que você preferir
ALTER USER postgres PASSWORD 'postgres'
- remova a linha que você adicionou
pg_hba.conf
ou altere-a novamente
- restart PostgreSQL again.
Veja: Como redefinir a senha do postgres para o PostgreSQL no Windows?
1. 9.2 agora usa a NETWORKSERVICE
conta, que não requer uma senha, então esse problema desaparece .