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?
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?
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 :
sudo -u postgres psql postgres
# \password postgres
Enter new password:
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 que sudo -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.
/etc/shadow
es donde se guarda la contraseña @lzap.
Ingrese en la línea de comando:
$ sudo -u postgres psql postgres
postgres=# \password postgres
Verás:
Enter new password:
Enter it again:
Manipula los postgres a través del usuario postgres
, así:
# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;
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 rootear su
esa cuenta.
sudo
lugar de su
.
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
.
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?