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? Caso contrário, como crio um novo?
postgresql
user-management
Thierry Lam
fonte
fonte
Respostas:
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 :
Para explicar um pouco. Geralmente, existem duas maneiras padrão de efetuar login no servidor PostgreSQL:
Ao executar o comando "psql" como um usuário UNIX (o chamado IDENT / autenticação PEER), por exemplo:
sudo -u postgres psql
. Observe quesudo -u
NÃO desbloqueia o usuário UNIX.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.
fonte
/etc/shadow
é onde a senha é mantida @lzap.Digite na linha de comando:
Você vai ver:
fonte
Você manipula o postgres através do usuário
postgres
, da seguinte maneira:fonte
su
no 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 acessarsu
essa conta.sudo
vez desu
.sudo su - postgres
: \sudo -u postgres
.No Windows, faça o seguinte (IMPORTANTE: Use uma conta de administrador do Windows ):
Após a instalação, abra
<PostgreSQL PATH>\data\pg_hba.conf
.Modifique estas duas linhas e altere "md5" para "trust":
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Reinicie o serviço PostgreSQL (pode não ser necessário).
(Opcional) Abra um prompt de comandos e altere a página de códigos para 1252:
cmd.exe /c chcp 1252
Faça o login no PostgreSQL. Não será necessária uma senha (observe o parâmetro -U em maiúsculas):
psql -U postgres
(Opcional, recomendado por razões de segurança) Altere a
postgres
senha do usuário:\password postgres
e altere "trust" de volta para "md5" em
pg_hba.conf
.fonte
Se você está tentando acessar o shell do PostgreSQL, pode digitar:
psql -U postgres my_database
Onde
my_database
está o nome do seu banco de dados.fonte