postgresql - padrão - logar usuario postgres



Esqueci a senha que inseri durante a instalação do postgres (8)

  1. Edite o arquivo /etc/postgresql/<version>/main/pg_hba.conf e encontre a seguinte linha:

    local   all             postgres                                md5
  2. Edite a linha e altere o md5 no final para trust e salvar o arquivo

  3. Recarregue o serviço postgresql

    $ sudo service postgresql reload
  4. Isso carregará os arquivos de configuração. Agora você pode modificar o usuário postgres fazendo login no shell do psql

    $ psql -U postgres
  5. Atualize a senha do usuário postgres

    alter user postgres with password 'secure-passwd-here';
  6. Edite o arquivo /etc/postgresql/<version>/main/pg_hba.conf e mude a trust volta para o md5 e salve o arquivo

  7. Recarregue o serviço postgresql

    $ sudo service postgresql reload
  8. Verifique se a alteração da senha está funcionando

    $ psql -U postgres -W

https://ffff65535.com

Eu esqueci ou digitei incorretamente (durante a instalação) a senha para o usuário padrão do Postgres. Parece que não consigo executá-lo e recebo o seguinte erro:

psql: FATAL:  password authentication failed for user "hisham"
hisham-agil: hisham$ psql 

Existe alguma maneira de redefinir a senha ou como criar um novo usuário com privilégios de superusuário?

Eu sou novo no Postgres e acabei de instalá-lo pela primeira vez. Eu estou tentando usá-lo com Rails e estou executando o Mac OS X Lion.


  1. encontre o arquivo pg_hba.conf - ele pode estar localizado, por exemplo, em /etc/postgresql-9.1/pg_hba.conf .

    cd /etc/postgresql-9.1/

  2. Apoia-la

    cp pg_hba.conf pg_hba.conf-backup

  3. coloque a seguinte linha (como a primeira linha não comentada ou como a única):

Para todas as ocorrências abaixo (local e host), a seção de replicação exepct se você não tiver nenhuma, deve ser alterada da seguinte forma, não deve haver autodetificação MD5 ou Peer.

`local  all   all   trust`
  1. reinicie seu servidor PostgreSQL (por exemplo, no Linux :)

    sudo /etc/init.d/postgresql restart

    Se o serviço (daemon) não iniciar o relatório no arquivo de log:

    conexões locais não são suportadas por esta compilação

    você deveria mudar

    local all all trust

    para

    host all all 127.0.0.1/32 trust

  2. Agora você pode se conectar como qualquer usuário. Conecte-se como o superusuário postgres (note que o nome do superusuário pode ser diferente em sua instalação. Em alguns sistemas ele é chamado pgsql , por exemplo ) .

    psql -U postgres

    ou

    psql -h 127.0.0.1 -U postgres

    (note que com o primeiro comando você não estará sempre conectado com o host local)

  3. Redefinir senha ('substitua my_user_name por postgres, já que você está redefinindo o usuário postgres )

    ALTER USER my_user_name with password 'my_secure_password';

  4. Restaure o antigo pg_hba.conf , pois é muito perigoso mantê-lo

    cp pg_hba.conf-backup pg_hba.conf

  5. reinicie o servidor, para rodar com o seguro pg_hba.conf

    sudo /etc/init.d/postgresql restart

Leitura adicional sobre o arquivo pg_hba: http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html


Ao conectar-se ao postgres a partir da linha de comando, não se esqueça de adicionar -h localhost como parâmetro da linha de comando. Caso contrário, o postgres tentará se conectar usando o modo de autenticação PEER.

A seguir, mostramos uma redefinição da senha, um login com falha com autenticação PEER e um login bem-sucedido usando uma conexão TCP.

# sudo -u postgres psql
could not change directory to "/root"
psql (9.1.11)
Type "help" for help.

postgres=# \password
Enter new password:
Enter it again:
postgres=# \q

Falha:

# psql -U postgres -W
Password for user postgres:
psql: FATAL:  Peer authentication failed for user "postgres"

Trabalhando com -h localhost :

# psql -U postgres -W  -h localhost
Password for user postgres:
psql (9.1.11)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

postgres=#

Apenas uma nota, no Linux Você pode simplesmente executar sudo su - postgres para se tornar o usuário postgres e de lá mudar o que é necessário usando o psql.


O pg_hba.conf ( C:\Program Files\PostgreSQL\9.3\data ) foi alterado desde que essas respostas foram dadas. O que funcionou para mim, no Windows, é abrir o arquivo e mudar o METHOD do md5 para o trust :

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

Então, usando o pgAdmin III, eu entrei usando nenhuma senha e mudei a senha do usuário postgres' indo em File -> Change Password


O arquivo .pgpass no diretório inicial de um usuário ou o arquivo referenciado por PGPASSFILE pode conter senhas a serem utilizadas se a conexão exigir uma senha (e nenhuma senha tiver sido especificada). No Microsoft Windows, o arquivo é denominado% APPDATA% \ postgresql \ pgpass.conf (em que% APPDATA% se refere ao subdiretório Application Data no perfil do usuário).

Este arquivo deve conter linhas do seguinte formato:

hostname: port: database: nome de usuário: senha

(Você pode adicionar um comentário de lembrete ao arquivo copiando a linha acima e precedendo-a com #.) Cada um dos quatro primeiros campos pode ser um valor literal, ou *, que corresponde a qualquer coisa. O campo de senha da primeira linha que corresponde aos parâmetros de conexão atuais será usado. (Portanto, coloque as entradas mais específicas primeiro quando estiver usando caracteres curinga.) Se uma entrada precisar conter: ou \, escape este caractere com. Um nome de host de localhost corresponde às conexões TCP (host localhost localhost) e socket de domínio Unix (pghost empty ou o diretório de soquete padrão) provenientes da máquina local. Em um servidor em espera, um nome de banco de dados de replicação corresponde às conexões de replicação de streaming feitas no servidor mestre. O campo do banco de dados é de utilidade limitada porque os usuários têm a mesma senha para todos os bancos de dados no mesmo cluster.

Em sistemas Unix, as permissões em .pgpass devem proibir qualquer acesso ao mundo ou grupo; Consiga isso com o comando chmod 0600 ~ / .pgpass. Se as permissões forem menos rigorosas do que isso, o arquivo será ignorado. No Microsoft Windows, presume-se que o arquivo está armazenado em um diretório que é seguro, portanto, nenhuma verificação de permissões especiais é feita.


Para instalação do Windows, um usuário do Windows é criado. E "psql" usa este usuário para conexão com a porta. Se você alterar a senha do usuário do PostgreSQL, ela não mudará a senha do Windows. A linha de comando abaixo funciona apenas se você tiver acesso à linha de comando.

Em vez disso, você pode usar o aplicativo de GUI do Windows "c: \ Windows \ system32 \ lusrmgr.exe". Este aplicativo gerencia usuários criados pelo Windows. Então você pode agora modificar a senha.


Se você está no Windows, você pode simplesmente executar

net user postgres postgres

e faça o login no postgres com postgres / postgres como usuário / senha





forgot-password