Postgresql es un sistema de base de datos relacional de objetos de código abierto con más de 30 años de desarrollo activo que le ha valido una sólida reputación por su confiabilidad, robustez de funciones y rendimiento. Postgres es un sistema de administración de bases de datos relacionales de código abierto y gratuito que enfatiza la extensibilidad y el cumplimiento de SQL. Originalmente se llamó POSTGRES, en referencia a sus orígenes como sucesora de la base de datos Ingres desarrollada en la Universidad de California, Berkeley. PostgreSQL se utiliza como almacén de datos primario o almacén de datos para muchas aplicaciones web, móviles, geoespaciales y de análisis. PostgreSQL puede almacenar datos estructurados y no estructurados en un solo producto.
Compruebe estos también:
- Cómo usar Ansible para instalar y configurar Postgres 14 en Debian 11
- Cómo instalar y configurar Postgres 14 en FreeBSD 13
- Permisos de Postgres:crear, actualizar y eliminar usuarios de la base de datos
- Cómo instalar y configurar Postgres 13 en Centos 8
- Ejecución de Postgresql 14 con Docker y Docker-Compose
- Cómo instalar y configurar Postgres 13 Ubuntu 20.04
- Cómo instalar y configurar Postgres 14 en Centos 8
- Cómo instalar y configurar Postgres 14 Ubuntu 20.04
- Cómo instalar y configurar Postgres 14 en Fedora 34
- Cómo instalar y configurar Postgres 14 en OpenSUSE Leap 15.3
Requisitos
Para seguir, asegúrese de tener lo siguiente:
- Servidor Debian 11
- Acceso root al servidor o usuario con acceso root
- Acceso a Internet desde el servidor
- Conocimiento básico de terminal Linux
Índice
- Asegúrese de que el servidor esté actualizado
- Instalación e inicio del servidor Postgres
- Métodos de autenticación de roles y bases de datos de PostgreSQL
- Conectando a la base de datos de postgres
- Configuración de instancia de postgres 14 para acceso remoto
- Administración de usuarios
1. Asegúrese de que los paquetes de su sistema estén actualizados
Actualicemos el índice de paquetes local de su servidor usando este comando:
sudo apt update
Luego actualizamos los paquetes en nuestro sistema con esto:
sudo apt -y update
Instalemos también los paquetes de utilidades necesarios que usaremos
sudo apt -y install gnupg2 wget
2. Instalación de Postgres 14
Postgres se proporciona en los repositorios predeterminados de Debian. Para verificar la versión proporcionada, use este comando:
sudo apt-cache search postgresql | grep postgresql
Los paquetes predeterminados proporcionados por los repositorios predeterminados son postgres 12. Si está interesado en Postgres 12, puede instalarlo con los siguientes comandos. El -contrib
paquete que agrega algunas utilidades y funcionalidades adicionales:
sudo apt install postgresql postgresql-contrib
Dado que estamos buscando instalar Postgres 14, necesitaremos agregar un repositorio adicional que proporcione los paquetes. Crear la configuración del repositorio de archivos
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Luego importe la clave de firma del repositorio:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Ahora actualicemos las listas de paquetes para que los nuevos repositorios reflejen:
sudo apt -y update
Luego finalmente instalamos la última versión de Postgres:
sudo apt -y install postgresql
Una vez que la instalación sea exitosa, se iniciará Postgres 14.
Utilice este comando para comprobar el estado del servicio:
$ sudo systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2021-10-18 04:33:26 UTC; 33s ago
Process: 4788 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 4788 (code=exited, status=0/SUCCESS)
CPU: 877us
Oct 18 04:33:26 ip-10-2-40-246 systemd[1]: Starting PostgreSQL RDBMS...
Oct 18 04:33:26 ip-10-2-40-246 systemd[1]: Finished PostgreSQL RDBMS.
A continuación, verifiquemos la instalación conectándonos al servidor de la base de datos PostgreSQL y verificando su versión. Usa este comando:
sudo -u postgres psql -c "SELECT version();"
Salida
$ sudo -u postgres psql -c "SELECT version();"
version
-----------------------------------------------------------------------------------------------------------------------------
PostgreSQL 14.0 (Debian 14.0-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
(1 row)
3. Métodos de autenticación de roles y bases de datos de PostgreSQL
PostgreSQL usa un concepto llamado roles
para manejar la autenticación y autorización del cliente. De forma predeterminada, Postgres está configurado para usar ident authentication
, lo que significa que asocia roles de Postgres con una cuenta de sistema Unix/Linux coincidente. Si existe un rol dentro de Postgres, un nombre de usuario de Unix/Linux con el mismo nombre puede iniciar sesión como ese rol.
El procedimiento de instalación creó una cuenta de usuario llamada postgres
que está asociado con el predeterminado postgres
role. Para usar PostgreSQL, puede iniciar sesión en esa cuenta.
PostgreSQL admite múltiples métodos de autenticación. Los métodos más utilizados son:
Trust
– Un rol puede conectarse sin contraseña, siempre que se cumplan las condiciones definidas enpg_hba.conf
se cumplen.Password
– Un rol puede conectarse proporcionando una contraseña. Las contraseñas se pueden almacenar comoscram-sha-256
,md5
ypassword
(clear-text
).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.
4. Conectando a la base de datos de postgres
- Al cambiar a
postres
usuario
Cambie a la cuenta de postgres en su servidor escribiendo esto en la terminal;:
sudo -i -u postgres
Ahora puede acceder a un aviso de Postgres inmediatamente escribiendo:
$ psql
psql (14.0 (Debian 14.0-1.pgdg110+1))
Type "help" for help.
postgres=#
Esto lo iniciará en el indicador de PostgreSQL, y desde aquí puede interactuar con el sistema de administración de la base de datos de inmediato.
2. Al ejecutar el comando como postgres
usuario
Use esto para ejecutar el comando directamente como postgres
usuario usando sudo
sudo -u postgres psql
Salida:
$ sudo -u postgres psql
psql (14.0 (Debian 14.0-1.pgdg110+1))
Type "help" for help.
postgres=#
5. Configuración de instancia de postgres 14 para acceso remoto
Para lograr esto, modificaremos los archivos de configuración de postgres. Necesitamos abrir los archivos y ajustar las configuraciones requeridas. El archivo de configuración principal para Postgresql 14 se puede encontrar en esta ruta /etc/postgresql/14/main/pg_hba.conf
Cambiemos la identificación de pares a confianza:
sed -i '/^local/s/peer/trust/' /etc/postgresql/14/main/pg_hba.conf
Cambie la identificación de identificación a md5 para permitir el inicio de sesión con contraseña.
sed -i '/^host/s/ident/md5/' /etc/postgresql/14/main/pg_hba.conf
Agregue un bloque para permitir el acceso desde cualquier lugar:
Agregue este contenido al archivo /etc/postgresql/14/main/pg_hba.conf
host all all 0.0.0.0/0 md5
Asegúrese de que PostgreSQL esté escuchando en *
Agregue esta línea a la configuración aquí /etc/postgresql/14/main/postgresql.conf
listen_addresses='*'
Habilite y reinicie el servidor postgresql para recargar las configuraciones
sudo systemctl restart postgresql
sudo systemctl enable postgresql
6. Gestión de usuarios
Creación de superusuario
Ahora que todo está configurado, vamos a crear un superusuario.
Conéctese a la base de datos como rol de postres:
# sudo -u postgres psql
psql (14.0 (Debian 14.0-1.pgdg110+1))
Type "help" for help.
postgres=#
Crear superusuario con el nombre root
:
CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';
Salida:
# CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';
CREATE ROLE
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
root | Superuser, Create role, Create DB | {}
postgres=#
Gestión de usuarios de aplicaciones
Use esto para crear una base de datos, cree un usuario y otorgue a ese usuario todos los accesos a esa base de datos:
create database app_db_name;
create user app_user with encrypted password 'dbpassword';
grant all privileges on database app_db_name to app_user;
Consulte esta guía completa sobre la gestión de usuarios y permisos en postgres aquí.
Conectarse a la instancia desde un host remoto
Use este comando para conectarse a la instancia de postgres desde la máquina local:
psql 'postgres://<username>:<password>@<host>:<port>/<db>?sslmode=disable'
# like
psql 'postgres://root:[email protected]:5432/postgres?sslmode=disable'
Conclusión
Hasta este punto, hemos logrado instalar Postgresql 14 en un servidor Debian 11, realizar algunas configuraciones básicas y luego realizar una administración básica de usuarios.