Cómo instalar la base de datos PostgreSQL en Debian 10


PostgreSQL (a veces denominado Postgres) es el sistema de base de datos relacional de objetos y de propósito general de código abierto más avanzado con una arquitectura probada que se ejecuta en los principales sistemas operativos. Es un sistema de base de datos de alto rendimiento, estable, escalable y extensible que proporciona una integridad de datos asombrosa y admite complementos potentes.

Es importante destacar que PostgreSQL le permite definir sus propios tipos de datos, agregar funciones personalizadas, incluso escribir código de diferentes lenguajes de programación como C/C ++, Java, etc., sin recompilar su base de datos.

PostgreSQL está siendo utilizado por reconocidas empresas tecnológicas como Apple, Fujitsu, Red Hat, Cisco, Juniper Network, etc.

En este artículo, le mostraremos cómo instalar, proteger y configurar el servidor de bases de datos PostgreSQL en Debian 10.

  1. Install a Debian 10 (Buster) Minimal Server

Instalación del servidor PostgreSQL en Debian 10

Para instalar el servidor de base de datos PostgreSQL, use el administrador de paquetes APT predeterminado, que instalará el servidor y el cliente PostgreSQL 11.

# apt install postgresql-11 postgresql-client-11

En Debian, como cualquier otro demonio, la base de datos de Postgres se inicializa inmediatamente después de que se completa la instalación del paquete, como se muestra en la siguiente captura de pantalla.

Para verificar si la base de datos de Postgres está realmente inicializada, puede usar la utilidad pg_isready que verifica el estado de la conexión de un servidor PostgreSQL, de la siguiente manera.

# pg_isready 

Además, en systemd, el servicio Postgres también se inicia automáticamente y se habilita para iniciarse al arrancar el sistema. Para asegurarse de que el servicio esté funcionando correctamente, ejecute el siguiente comando.

# systemctl status postgresql

Los siguientes son otros comandos útiles de systemctl para administrar el servicio Postgres en systemd.

# systemctl start postgresql
# systemctl restart postgresql
# systemctl stop postgresql
# systemctl reload postgresql 		#this reloads the service configuration

Asegurar y configurar la base de datos PostgreSQL

De forma predeterminada, Postgres utiliza el concepto de roles para administrar los permisos de acceso a la base de datos y los roles de la base de datos están conceptualmente completamente separados de los usuarios del sistema operativo. Un rol puede ser un usuario o un grupo, y un rol que tiene derecho de inicio de sesión se llama usuario.

Un sistema recién inicializado siempre contiene un rol predefinido llamado postgres, tiene el mismo nombre que la cuenta de usuario del sistema operativo llamada postgres, que se usa para acceder al psql (shell de Postgres) y otros programas de base de datos.

La cuenta de usuario del sistema Postgres no está protegida con una contraseña; para asegurarla, puede crear una contraseña con la utilidad passwd.

# passwd postgres

Además, el rol de Postgres (o el usuario de la base de datos administrativa si lo desea) no está protegido de forma predeterminada. También debe protegerlo con una contraseña. Ahora cambie a la cuenta de usuario del sistema postgres y al rol de postgres (recuerde establecer una contraseña segura) como se muestra.

# su - postgres
# psql -c "ALTER USER postgres WITH PASSWORD 'securepass_here';"

Luego salga de la cuenta de postgres para continuar con la guía.

Configurar la autenticación del cliente

El archivo de configuración principal de Postgres se encuentra en /etc/postgresql/11/main/postgresql.conf. Además de este archivo, Postgres usa otros dos archivos de configuración editados manualmente, que controlan la autenticación del cliente.

La autenticación del cliente está controlada por el archivo de configuración /etc/postgresql/11/main/pg_hba.conf. Postgres proporciona muchos métodos de autenticación de clientes diferentes, incluida la autenticación basada en contraseña. Las conexiones del cliente se autentican según la dirección del host del cliente, la base de datos y el usuario.

Si elige utilizar la autenticación basada en contraseña, puede implementar uno de estos métodos: md5 o contraseña que funcionan de manera similar, excepto por la forma en que la contraseña se transmite a través de la conexión, es decir, MD5 con hash y texto sin cifrar, respectivamente.

El uso de la autenticación de contraseña md5 evita el rastreo de contraseñas por parte de piratas informáticos y evita almacenar contraseñas en el servidor en texto sin formato. El método de contraseña solo se puede utilizar de forma segura si la conexión está protegida por cifrado SSL.

Para esta guía, mostraremos cómo configurar la autenticación de contraseña md5 para la autenticación del cliente.

# vim /etc/postgresql/11/main/pg_hba.conf 

Busque la siguiente línea y cambie el método de autenticación a md5 como se muestra en la captura de pantalla.

local   all             all                                     md5

Guarde los cambios en el archivo y salga de él. Luego aplique los cambios recientes reiniciando el servicio Postgres de la siguiente manera.

# systemctl restart postgresql

Creación de una nueva base de datos y un rol / usuario de base de datos en PostgreSQL

En esta última sección, mostraremos cómo crear un nuevo usuario de base de datos y un rol de base de datos para administrarlo. Primero, cambie a la cuenta de Postgres y abra el shell de Postgres de la siguiente manera.

# su - postgres
$ psql

Para crear una base de datos llamada "test_db", ejecute el siguiente comando SQL.

postgres=# CREATE DATABASE test_db;

Luego cree un usuario de la base de datos (un rol con derechos de inicio de sesión) que administrará la nueva base de datos de la siguiente manera.

postgres=#CREATE USER test_user PASSWORD ‘[email protected]_here’;     #assumes login function by default

Para conectarse a test_db como usuario test_user, ejecute el siguiente comando.

 
$ psql -d  test_db  -U test_user

Para obtener más información, consulte la documentación de PostgreSQL 11.

¡Eso es si por ahora! En esta guía, hemos mostrado cómo instalar, asegurar y configurar el servidor de bases de datos PostgreSQL en Debian 10. ¿Tiene alguna pregunta o idea que compartir? Utilice el formulario de comentarios a continuación para comunicarse con nosotros.