Acabo de instalar postgres 8.4 en Ubuntu 9.10 y nunca me ha pedido que cree un superusuario. ¿Hay un superusuario predeterminado y su contraseña? Si no, ¿cómo creo uno nuevo?
postgresql
user-management
Thierry Lam
fuente
fuente
Respuestas:
PRECAUCIÓN La respuesta sobre cambiar la contraseña de UNIX para "postgres" a través de "$ sudo passwd postgres" no es preferida, ¡e incluso puede ser PELIGROSA !
Esta es la razón: por defecto, la cuenta UNIX "postgres" está bloqueada, lo que significa que no se puede iniciar sesión con una contraseña. Si usa "sudo passwd postgres", la cuenta se desbloquea inmediatamente. Peor aún, si configura la contraseña en algo débil, como "postgres", está expuesto a un gran peligro para la seguridad. Por ejemplo, hay una serie de bots que intentan el combo de nombre de usuario / contraseña "postgres / postgres" para iniciar sesión en su sistema UNIX.
Lo que debes hacer es seguir la respuesta de Chris James :
Para explicarlo un poco. Por lo general, hay dos formas predeterminadas de iniciar sesión en el servidor PostgreSQL:
Mediante la ejecución de la orden "psql" como un usuario UNIX (el llamado IDENT / autenticación del mismo nivel), por ejemplo:
sudo -u postgres psql
. Tenga en cuenta quesudo -u
NO desbloquea al usuario UNIX.mediante conexión TCP / IP utilizando el nombre de usuario / contraseña administrados de PostgreSQL (la llamada autenticación TCP) (es decir, NO la contraseña UNIX).
Por lo tanto, nunca desea establecer la contraseña para la cuenta de UNIX "postgres". Déjelo bloqueado como está por defecto.
Por supuesto, las cosas pueden cambiar si lo configura de manera diferente a la configuración predeterminada. Por ejemplo, uno podría sincronizar la contraseña de PostgreSQL con la contraseña de UNIX y solo permitir inicios de sesión locales. Eso estaría más allá del alcance de esta pregunta.
fuente
/etc/shadow
es donde se guarda la contraseña @lzap.Ingrese en la línea de comando:
Verás:
fuente
Manipula los postgres a través del usuario
postgres
, así:fuente
su
el usuario de postgres sin ingresar una contraseña. En la mayoría de los sistemas, la cuenta de Unix de Postgres está bloqueada (no funcionará ninguna contraseña), lo que significa que solo puede rootearsu
esa cuenta.sudo
lugar desu
.sudo su - postgres
: \sudo -u postgres
.En Windows, haga lo siguiente (IMPORTANTE: use una cuenta de administrador de Windows ):
Después de la instalación, abrir
<PostgreSQL PATH>\data\pg_hba.conf
.Modifique estas dos líneas y cambie "md5" a "confianza":
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Reinicie el servicio PostgreSQL (podría no ser necesario).
(Opcional) Abra un símbolo del sistema y cambie la página de códigos a 1252:
cmd.exe /c chcp 1252
Inicie sesión en PostgreSQL. No se necesitará contraseña (observe el parámetro -U mayúscula):
psql -U postgres
(Opcional, recomendado por razones de seguridad) Cambie la
postgres
contraseña del usuario:\password postgres
y cambie "confianza" a "md5" en
pg_hba.conf
.fuente
Si está intentando acceder al shell de PostgreSQL, puede escribir:
psql -U postgres my_database
¿Dónde
my_database
está el nombre de tu base de datos?fuente