Iniciar sesión y autenticarse en PostgreSQL
- Conexión a la base de datos en PostgreSQL
-
Use
createuser
ycreatedb
en PostgreSQL - Use los comandos de administración de SQL y conéctese con una contraseña a través de TCP
Este artículo explica cómo iniciar sesión y autenticarse para acceder a una base de datos PostgreSQL en particular.
Conexión a la base de datos en PostgreSQL
Al conectarse a una base de datos PostgreSQL, debe crear la base de datos a la que desea conectarse, la dirección de host del servidor, el número de puerto y su nombre de usuario. Los parámetros se pueden proporcionar mediante los siguientes argumentos de la línea de comandos.
david@david-HP-ProBook-6470b:~$ psql -h localhost -U postgres -p 5432
Hay parámetros de conexión predeterminados que se utilizan cuando se omite un argumento. Si omitimos el nombre de usuario y la base de datos, el servidor utiliza el nombre de usuario del sistema operativo.
La base de datos seleccionada también tiene el mismo nombre que el sistema operativo, y si estos parámetros no existen, se puede encontrar el siguiente error.
david@david-HP-ProBook-6470b:~$ psql
psql: error: FATAL: role "david" does not exist
En el ejemplo anterior, el servidor intenta acceder a una base de datos llamada david
con el nombre de usuario david
, que no existe.
Use createuser
y createdb
en PostgreSQL
Por defecto, el servidor PostgreSQL tiene un usuario con el nombre de usuario postgres
y una base de datos llamada postgres
. Utilice el siguiente comando para crear un usuario de base de datos con el mismo nombre que nuestro sistema operativo.
david@david-HP-ProBook-6470b:~$ sudo -u postgres createuser -s $USER
A continuación, cree una base de datos usando el comando createdb
para el nuevo usuario david
.
david@david-HP-ProBook-6470b:~$ createdb employee_db
Para verificar que ahora podemos iniciar sesión usando PSQL, debemos especificar la base de datos a la que queremos conectarnos.
david@david-HP-ProBook-6470b:~$ psql -d employee_db
Producción :
psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1))
Type "help" for help.
employee_db=#
Supongamos que desea que su base de datos tenga el sistema operativo predeterminado, es decir, david
en mi caso. Use el comando createdb
sin usar el argumento -d
, que solicita un nombre de base de datos.
david@david-HP-ProBook-6470b:~$ createdb
Si intenta iniciar sesión en el servidor PostgreSQL utilizando PSQL sin especificar ningún parámetro, el usuario y la base de datos predeterminados utilizados para iniciar sesión serán david
y david
.
david@david-HP-ProBook-6470b:~$ psql
Producción :
psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1))
Type "help" for help.
david=#
Use los comandos de administración de SQL y conéctese con una contraseña a través de TCP
SQL tiene comandos que podemos aprovechar para crear un usuario y su base de datos en una base de datos PostgreSQL. El siguiente comando es para iniciar sesión en el servidor PostgreSQL como superusuario.
david@david-HP-ProBook-6470b:~$ sudo -u postgres psql postgres
Ingrese la contraseña de su sistema operativo y presione enter cuando se le solicite una contraseña.
[sudo] password for david:
Producción :
psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1))
Type "help" for help.
postgres=#
En el shell de PSQL, cree un usuario y una base de datos y asocie el usuario con la base de datos creada.
postgres=# CREATE ROLE john LOGIN PASSWORD 'john';
CREATE ROLE
postgres=# CREATE DATABASE products_db WITH OWNER = john;
CREATE DATABASE
postgres=#
Finalmente, inicie sesión con el comando PSQL sobre TCP para especificar el host, la base de datos, el usuario y el número de puerto. El número de puerto predeterminado del servidor PostgreSQL es 5432
.
El siguiente comando verifica que podemos iniciar sesión con nuestro nuevo usuario a través de TCP.
david@david-HP-ProBook-6470b:~$ psql -h localhost -d products_db -U john -p 5432
Cuando se le solicite una contraseña, ingrese la contraseña que configuramos como john
, el mismo nombre que el nombre de usuario, y presione el botón Intro en su teclado.
Password for user john:
Producción :
psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
products_db=>
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub