Esta manhã estou tentando conectar o banco de dados PostgreSQL na minha área de trabalho do Windows 7 Professional.
O valor padrão é 'postgres', mas com certeza esqueci qual senha usei quando a instalei originalmente.
Eu pesquisei e encontrei um post relacionado à redefinição de sua senha. Eu segui os passos, mas o resultado final é um pouco diferente do mencionado no post. 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:
"Ocorreu um erro de sistema 5. Acesso negado."
erro no sistema. Como evito esse erro e redefino a senha?
(Nota: Não muito disso é relevante para leitores usando PostgreSQL 9.2 ou superior dos instaladores EDB, que agora têm uma instalação padrão bastante simplificada usando o
NETWORK SERVICE
, embora você ainda possa configurar outras contas) .Você redefiniu (ou tentou redefinir) a senha da conta de serviço. O PostgreSQL não será executado como Administrador por motivos de segurança e o instalador geralmente o configura com uma conta de usuário "postgres" no PostgreSQL 9.1 e anteriores 1 . No Windows, você não pode iniciar um serviço como usuário sem salvar a senha do usuário no registro, então é 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. Então não faça isso, você terá que corrigir a configuração do serviço para armazenar a senha atualizada.Felizmente, acho que outro erro o impediu de fazer isso. Parece que você provavelmente está executando seu prompt de comando sem usar "Executar como administrador" em uma conta de usuário do Windows sem privilégios ou em uma máquina com UAC, portanto, ele não está sendo executado com 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 de banco de dados ou outra coisa que está pedindo a senha para o
postgres
usuário do Windows?Provavelmente você está apenas tentando fazer login no banco de dados. Para isso, você usa a senha (infelizmente não relacionada) armazenada no próprio banco de dados. Como você o perdeu/esqueceu, você terá que redefini-lo:
pg_hba.conf
, geralmente emC:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
pg_hba.conf
dessa maneira.Edite-o para definir a linha "host" do usuário "postgres" no host "127.0.0.1/32" para "trust". Você pode adicionar a linha se ela não estiver lá; basta inserir:
antes de qualquer outra linha. (Você pode ignorar comentários, linhas começando com
#
).Reinicie o serviço PostgreSQL no painel de controle Services (start->run->
services.msc
)ALTER USER postgres PASSWORD 'postgres'
pg_hba.conf
ou altere-a de voltaVeja: Como faço para redefinir a senha do postgres para PostgreSQL no Windows?
1. 9.2 agora usa a
NETWORKSERVICE
conta, que não requer senha, então esse problema desaparece .Você precisa distinguir entre o usuário do sistema (Windows) chamado "postgres" e o usuário do banco de dados com o mesmo nome.
Encontre seu arquivo pg_hba.conf - ele controla o acesso ao servidor PostgreSQL. Você precisará editá-lo como um usuário com direitos de administrador. Procure por linhas que mencionem o usuário "postgres" e defina temporariamente o modo como "confiança". Reinicie o postgresql e você poderá se conectar sem uma senha. Redefina a senha, restaure o arquivo para suas configurações originais e reinicie o PostgreSQL.
O manual contém detalhes sobre métodos de autenticação e o arquivo pg_hba.conf .
Se mais alguém encontrar esse problema, enquanto estiver usando o pgAdmin, sugiro que você dê uma olhada nisso: http://www.homebrewandtechnology.com/blog/graphicallychangepostgresadminpassword