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

351

Acabei de instalar o postgres 8.4 no Ubuntu 9.10 e ele nunca me pediu para criar um superusuário. Existe um superusuário padrão e sua senha? Se não, como faço para criar um novo?

    
por Thierry Lam 06.02.2010 / 05:54

5 respostas

487

CUIDADO A resposta sobre a alteração da senha do UNIX para "postgres" através de "$ 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 é possível efetuar login usando uma senha. Se você usar "sudo passwd postgres", a conta será desbloqueada imediatamente. Pior, se você definir a senha para algo fraco, como "postgres", então você está exposto a um grande perigo de segurança. Por exemplo, há vários bots por aí tentando a combinação de nome de usuário / senha "postgres / postgres" para efetuar login no 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. Normalmente, existem duas maneiras padrão de fazer login no servidor PostgreSQL:

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

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

Então você nunca quer definir a senha para a conta UNIX "postgres". Deixe bloqueado como está por padrão.

É claro que as coisas podem mudar se você configurá-lo de forma diferente da configuração padrão. Por exemplo, pode-se sincronizar a senha do PostgreSQL com a senha do UNIX e permitir somente logins locais. Isso estaria além do escopo desta questão.

    
por 28.10.2011 / 08:25
157

Digite na linha de comando:

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

Você verá:

Enter new password: 
Enter it again:
    
por 16.03.2011 / 16:39
58

Você manipula o postgres pelo usuário postgres , desta forma:

# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;
    
por 06.02.2010 / 06:02
20

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

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

  2. Modifique essas duas linhas e altere "md5" para "confiar":

    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 comando e altere a página de código para 1252:

    cmd.exe /c chcp 1252

  5. Faça login no PostgreSQL. A senha não será necessária (observe o parâmetro -U maiúsculo):

    psql -U postgres

  6. (Opcional, recomendado por motivos de segurança) Altere a senha do usuário postgres :

    \password postgres

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

por 18.11.2014 / 20:25
5

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

psql -U postgres my_database

Onde my_database é o nome do seu banco de dados.

    
por 07.03.2014 / 14:44