GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar PostgreSQL en Ubuntu 20.04

PostgreSQL o Postgres es un sistema de administración de bases de datos relacionales de objetos de uso general y código abierto con muchas características avanzadas que le permiten crear entornos tolerantes a fallas o aplicaciones complejas.

En esta guía, explicaremos cómo instalar el servidor de la base de datos PostgreSQL en Ubuntu 20.04 y exploraremos los conceptos básicos de la administración de la base de datos PostgreSQL.

Requisitos previos #

Para poder instalar paquetes, debe iniciar sesión como root o usuario con privilegios sudo.

Instalar PostgreSQL en Ubuntu #

Al momento de escribir este artículo, la última versión de PostgreSQL disponible en los repositorios oficiales de Ubuntu es la versión 10.4 de PostgreSQL.

Ejecute los siguientes comandos para instalar el servidor PostgreSQL en Ubuntu:

sudo apt updatesudo apt install postgresql postgresql-contrib

También estamos instalando el paquete de contribución de PostgreSQL que proporciona varias funciones adicionales para el sistema de base de datos de PostgreSQL.

Una vez completada la instalación, el servicio de PostgreSQL se iniciará automáticamente. Usa el psql herramienta para verificar la instalación conectándose al servidor de base de datos PostgreSQL e imprimiendo su versión:

sudo -u postgres psql -c "SELECT version();"
PostgreSQL 12.2 (Ubuntu 12.2-4) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-8ubuntu1) 9.3.0, 64-bit

Eso es todo. Se instaló PostgreSQL y puede comenzar a usarlo.

Roles de PostgreSQL y métodos de autenticación #

Los permisos de acceso a la base de datos dentro de PostgreSQL se manejan con el concepto de roles. Un rol puede representar a un usuario de la base de datos o a un grupo de usuarios de la base de datos.

PostgreSQL admite múltiples métodos de autenticación. Los métodos más utilizados son:

  • Confianza:un rol puede conectarse sin contraseña, siempre que se cumplan las condiciones definidas en pg_hba.conf se cumplen.
  • Contraseña:un rol puede conectarse proporcionando una contraseña. Las contraseñas se pueden almacenar como scram-sha-256 , md5 y password (texto claro).
  • Ident:solo se admite en conexiones TCP/IP. Funciona obteniendo el nombre de usuario del sistema operativo del cliente, con una asignación de nombre de usuario opcional.
  • Peer:igual que Ident, pero solo se admite en conexiones locales.

La autenticación del cliente PostgreSQL se define en el archivo de configuración llamado pg_hba.conf . De forma predeterminada, PostgreSQL utiliza el método de autenticación de pares para las conexiones locales.

El postgres El usuario se crea automáticamente cuando instala PostgreSQL. Este usuario es el superusuario de la instancia de PostgreSQL y es equivalente al usuario root de MySQL.

Para iniciar sesión en el servidor PostgreSQL como postgres usuario, primero cambie al usuario y luego acceda al indicador de PostgreSQL usando el psql utilidad:

sudo su - postgrespsql

Desde aquí, puede interactuar con su instancia de PostgreSQL. Para salir del tipo de shell de PostgreSQL:

\q

Otra forma de acceder al indicador de PostgreSQL sin cambiar de usuario es usar sudo comando:

sudo -u postgres psql

En general, debe iniciar sesión en el servidor de la base de datos como postgres solo desde el servidor local.

Creación de rol y base de datos de PostgreSQL #

Solo superusuarios y roles con CREATEROLE privilegio puede crear nuevos roles.

El siguiente ejemplo muestra cómo crear un nuevo rol llamado john una base de datos llamada johndb y conceder privilegios sobre la base de datos:

  1. Cree un nuevo rol de PostgreSQL:

    sudo su - postgres -c "createuser john"
  2. Cree una nueva base de datos PostgreSQL:

    sudo su - postgres -c "createdb johndb"

Para otorgar permisos al usuario en la base de datos, conéctese al shell de PostgreSQL:

sudo -u postgres psql

y ejecuta la siguiente consulta:

GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

Habilitar acceso remoto al servidor PostgreSQL #

De forma predeterminada, el servidor PostgreSQL solo escucha en la interfaz local (127.0.0.1 ).

Para habilitar el acceso remoto a su servidor PostgreSQL, abra el archivo de configuración postgresql.conf y agregue listen_addresses = '*' en el CONNECTIONS AND AUTHENTICATION sección.

sudo nano /etc/postgresql/12/main/postgresql.conf
/etc/postgresql/12/main/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

Guarde el archivo y reinicie el servicio PostgreSQL:

sudo service postgresql restart

Verifica los cambios con el ss utilidad:

ss -nlt | grep 5432

El resultado muestra que el servidor PostgreSQL está escuchando en todas las interfaces (0.0.0.0 ):

LISTEN  0        244              0.0.0.0:5432           0.0.0.0:*              
LISTEN  0        244                 [::]:5432              [::]:* 

El siguiente paso es configurar el servidor para aceptar conexiones remotas editando el pg_hba.conf archivo.

A continuación se muestran algunos ejemplos que muestran diferentes casos de uso:

/etc/postgresql/12/main/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb from all locations using md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

El último paso es abrir el puerto 5432 en su cortafuegos.

Suponiendo que está utilizando UFW para administrar su firewall y desea permitir el acceso desde el 192.168.1.0/24 subred, ejecutaría el siguiente comando:

sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432

Asegúrese de que su firewall esté configurado para aceptar conexiones solo de rangos de IP de confianza.


Ubuntu
  1. Cómo instalar PostgreSQL en Ubuntu 18.04

  2. Cómo instalar PostgreSQL en Ubuntu 18.04

  3. Cómo instalar PostgreSQL 9.5 en Ubuntu (12.04 - 15.10)

  4. Cómo instalar pgAdmin4 en Ubuntu

  5. Instalar PostgreSQL en Ubuntu 20.04

Cómo instalar Observium en Ubuntu 15.04

Cómo instalar Joomla en Ubuntu 16.04

Cómo instalar PostgreSQL en Ubuntu 16.04

Cómo instalar PostgreSQL en Ubuntu 18.04 LTS

Cómo instalar PostgreSQL en Ubuntu 20.04 LTS

Cómo instalar PostgreSQL en Ubuntu 22.04