Iniciar sesión y autenticarse en PostgreSQL

David Mbochi Njonge 20 junio 2023
  1. Conexión a la base de datos en PostgreSQL
  2. Use createuser y createdb en PostgreSQL
  3. Use los comandos de administración de SQL y conéctese con una contraseña a través de TCP
Iniciar sesión y autenticarse en PostgreSQL

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 Mbochi Njonge avatar David Mbochi Njonge avatar

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

Artículo relacionado - PostgreSQL Database