Qual é o nome de usuário / senha padrão do superusuário para o postgres após uma nova instalação?

Respostas:

534

CUIDADO A resposta sobre como alterar a senha do UNIX para "postgres" por "$ sudo passwd postgres" não é a preferida e pode até ser PERIGOSA !

É por isso que: Por padrão, a conta UNIX "postgres" está bloqueada, o que significa que não pode ser logada usando uma senha. Se você usar "sudo passwd postgres", a conta será desbloqueada imediatamente. Pior, se você definir a senha como algo fraco, como "postgres", estará exposto a um grande perigo à segurança. Por exemplo, existem vários bots por aí, tentando a combinação de nome de usuário / senha "postgres / postgres" para fazer login no seu sistema UNIX.

O que você deve fazer é seguir a resposta de Chris James :

sudo -u postgres psql postgres

# \password postgres

Enter new password: 

Para explicar um pouco. Geralmente, existem duas maneiras padrão de efetuar login no servidor PostgreSQL:

  1. Ao executar o comando "psql" como um usuário UNIX (o chamado IDENT / autenticação PEER), por exemplo: sudo -u postgres psql. Observe que sudo -uNÃO desbloqueia o usuário UNIX.

  2. por conexão TCP / IP usando o nome de usuário / senha gerenciados do PostgreSQL (a chamada autenticação TCP) (ou seja, NÃO a senha do UNIX).

Portanto, você nunca deseja definir a senha para a conta UNIX "postgres". Deixe-o bloqueado como está por padrão.

É claro que as coisas podem mudar se você a configurar de maneira diferente da configuração padrão. Por exemplo, era possível sincronizar a senha do PostgreSQL com a senha do UNIX e permitir apenas logins locais. Isso estaria além do escopo desta questão.

user716468
fonte
11
então, como você bloqueia o postgres do usuário de volta?
ultrajohn
3
@ultrajohn - depende de distribuição que você usa, mas você pode editar / etc / passwd e colocar * em vez da senha
lzap
3
/etc/shadowé onde a senha é mantida @lzap.
Gringo Suave
2
Certo, você pode definir / sbin / nologin em / etc / passwd ou colocar * em vez da senha em / etc / shadow.
Lzap 21/09/12
34
passwd --lock postgres
Stéphane
166

Digite na linha de comando:

$ sudo -u postgres psql postgres
postgres=# \password postgres

Você vai ver:

Enter new password: 
Enter it again:
dcrawkstar
fonte
7
Isso é necessário para usar uma ferramenta como pgadminIII (ao configurar um perfil de servidor) imediatamente após a instalação do Postgres. Obrigado!
limist
64

Você manipula o postgres através do usuário postgres, da seguinte maneira:

# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;
David Mackintosh
fonte
5
@ThierryLam Você deve ser root suno usuário do postgres sem digitar uma senha. Na maioria dos sistemas, a conta do Postgres Unix está bloqueada (nenhuma senha funcionará), o que significa que somente o root pode acessar suessa conta.
precisa saber é o seguinte
2
Use em sudovez de su.
Reinierpost
8
Eu tive que executar sudo su - postgres: \
Jim Schubert
3
@ Jim Schubert: você também pode executar sudo -u postgres.
reinierpost
1
sudo -u postgres psql - funciona também para que você possa fazer isso em uma única etapa.
ominus
21

No Windows, faça o seguinte (IMPORTANTE: Use uma conta de administrador do Windows ):

  1. Após a instalação, abra <PostgreSQL PATH>\data\pg_hba.conf.

  2. Modifique estas duas linhas e altere "md5" para "trust":

    host all all 127.0.0.1/32 md5

    host all all ::1/128 md5

  3. Reinicie o serviço PostgreSQL (pode não ser necessário).

  4. (Opcional) Abra um prompt de comandos e altere a página de códigos para 1252:

    cmd.exe /c chcp 1252

  5. Faça o login no PostgreSQL. Não será necessária uma senha (observe o parâmetro -U em maiúsculas):

    psql -U postgres

  6. (Opcional, recomendado por razões de segurança) Altere a postgressenha do usuário:

    \password postgres

    e altere "trust" de volta para "md5" em pg_hba.conf.

MS Dousti
fonte
5

Se você está tentando acessar o shell do PostgreSQL, pode digitar:

psql -U postgres my_database

Onde my_databaseestá o nome do seu banco de dados.

Marcio Mazzucato
fonte