Búsqueda de sitios web

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 todos los principales sistemas operativos. Es un sistema de base de datos de alto rendimiento, estable, escalable y extensible que proporciona una integridad de datos sorprendente y admite potentes complementos.

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

PostgreSQL está siendo utilizado por empresas tecnológicas reconocidas 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.

Requisito:

  1. Instalar un servidor mínimo Debian 10 (Buster)

Instalación del servidor PostgreSQL en Debian 10

Para instalar el servidor de base de datos PostgreSQL, utilice 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 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 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 iniciar el sistema. Para asegurarse de que el servicio esté funcionando correctamente, ejecute el siguiente comando.

systemctl status postgresql

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

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

Proteger 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 una función predefinida llamada postgres, tiene el mismo nombre que la cuenta de usuario del sistema operativo llamada postgres, que se utiliza para acceder a psql. (shell Postgres) y otros programas de bases de datos.

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

passwd postgres

Además, el rol Postgres (o el usuario administrativo de la base de datos, 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 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 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 utiliza 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 diferentes de autenticación de clientes, incluida la autenticación basada en contraseña. Las conexiones de los clientes 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-hashed 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 mediante cifrado SSL.

En 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. Luego aplique los cambios recientes reiniciando el servicio Postgres de la siguiente manera.

systemctl restart postgresql

Crear 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 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 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 ‘securep@ss_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.

Conclusión

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