Cómo instalar y usar PostgreSQL en Ubuntu 18.04


PostgreSQL (Postgres en breve) es un sistema de base de datos de documentos relacionales de código abierto, potente, avanzado, de alto rendimiento y estable. Utiliza y mejora el lenguaje SQL junto con una gran cantidad de funciones para el almacenamiento y la gestión de datos seguros.

Es eficiente, confiable y escalable para manejar grandes y complicados volúmenes de datos y configurar entornos de nivel empresarial y tolerantes a fallas, al tiempo que garantiza una alta integridad de los datos. Postgres también es altamente extensible con características como índices que vienen con API para que pueda desarrollar sus propias soluciones para resolver sus desafíos de almacenamiento de datos.

En este artículo, explicaremos cómo instalar PostgreSQL en un servidor Ubuntu 18.04 (también funciona en versiones anteriores de Ubuntu) y aprenderemos algunas formas básicas de usarlo.

Cómo instalar PostgreSQL en Ubuntu

Primero, cree un archivo /etc/apt/sources.list.d/pgdg.list que almacena la configuración del repositorio, luego importe la clave del repositorio a su sistema, actualice la lista de paquetes del sistema e instale el paquete Postgres usando los siguientes comandos.

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
$ sudo apt install wget ca-certificates
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt update
$ sudo apt install postgresql-10 pgadmin4 

Una vez que se ha instalado postgres, el servicio de base de datos se inició automáticamente y puede confirmar escribiendo el siguiente comando.

$ sudo systemctl status postgresql.service

Cómo utilizar bases de datos y roles de PostgreSQL

En postgres, la autenticación del cliente está controlada por el archivo de configuración /etc/postgresql/10/main/pg_hba.conf. El método de autenticación predeterminado es "par" para el administrador de la base de datos, lo que significa que obtiene el nombre de usuario del sistema operativo del cliente del sistema operativo y verifica si coincide con el nombre de usuario de la base de datos solicitado para permitir el acceso, para conexiones locales (como se muestra en la siguiente captura de pantalla ).

Durante el proceso de instalación, se creó una cuenta de usuario del sistema llamada postgres sin contraseña, que también es el nombre de usuario predeterminado del administrador de la base de datos.

$ sudo vim /etc/postgresql/10/main/pg_hba.conf

Además, en Postgres, la gestión de permisos de acceso a la base de datos se realiza a través de roles. Un rol se puede considerar como un usuario de la base de datos o como un grupo de usuarios de la base de datos, dependiendo de cómo esté configurado el rol.

El rol predeterminado también es postgres. Es importante destacar que los roles de la base de datos están conceptualmente desconectados por completo de los usuarios del sistema operativo, pero prácticamente pueden no estar separados (por ejemplo, cuando se trata de la autenticación de clientes).

Es importante destacar que los roles pueden poseer objetos de base de datos y pueden asignar privilegios sobre esos objetos a otros roles para controlar quién tiene acceso a qué objetos. Además, es posible otorgar membresía en un rol a otro rol.

Para configurar otros roles para que utilicen contraseñas cifradas para administrar las bases de datos que se les asignan, además del rol predeterminado de postgres, debe cambiar la línea a.

Then restart the postgresql service to apply the recent changes.
$ sudo systemctl restart postgresql

Cómo usar PostgreSQL en Ubuntu

Una vez que todo está configurado, puede acceder a la cuenta del sistema de postgres con el siguiente comando, donde el indicador -i le dice a sudo que ejecute el shell especificado por la entrada de la base de datos de contraseñas del usuario de destino como un shell de inicio de sesión.

$ sudo -i -u postgres 
$ psql		#to launch the postgres shell program  
postgres=#

Para acceder al shell de postgres directamente, sin acceder primero a la cuenta de usuario de postgres, ejecute el siguiente comando.

$ sudo -i -u postgres psql

Puede salir/salir de postgres escribiendo el siguiente comando.

postgres=# \q

Cree un nuevo rol de usuario con el siguiente comando.

postgres=# CREATE ROLE tecmint;

Para crear un rol con un atributo LOGIN, use el siguiente comando (los roles con el atributo LOGIN pueden considerarse lo mismo que los usuarios de una base de datos).

postgres=#CREATE ROLE tecmint LOGIN;
OR
postgres=#CREATE USER name;	#assumes login function by default

También se puede crear un rol con una contraseña, esto es útil si configuró el método de autenticación del cliente para solicitar a los usuarios que proporcionen una contraseña cifrada al conectarse a la base de datos.

postgres=#CREATE ROLE tecmint PASSWORD 'passwd_here'

Para enumerar los roles de usuario existentes, use cualquiera de estos comandos.

postgres=# \du 				#shows actual users
OR
postgres=# SELECT rolname FROM pg_roles;

Para eliminar cualquier rol de usuario existente, use el comando DROP ROLE como se muestra.

postgres=# DROP ROLE tecmint;

Una vez que haya creado un rol con un nombre en particular (por ejemplo, usuario de tecmint), puede crear una base de datos (con el mismo nombre que el rol) que será administrada por ese rol como se muestra.

postgres=# CREATE DATABASE tecmint;

Ahora para administrar la base de datos tecmint, acceda al shell de postgres como el rol tecmint, proporcione su contraseña de la siguiente manera.

$ sudo -i -u tecmint psql

Crear tablas es tan fácil que crearemos una tabla de prueba llamada autores, que almacena información sobre los autores de TecMint.com, como se muestra.

tecmint=>CREATE TABLE authors (
    code      char(5) NOT NULL,
    name    varchar(40) NOT NULL,
    city varchar(40) NOT NULL
    joined_on date NOT NULL,	
    PRIMARY KEY (code)
);

Después de crear una tabla, intente completarla con algunos datos, como se indica a continuación.

tecmint=> INSERT INTO authors VALUES(1,'Ravi Saive','Mumbai','2012-08-15');

Para ver los datos almacenados en una tabla, puede ejecutar un comando SELECT.

tecmint=> SELECT * FROM authors;

Puede enumerar todas las tablas en la base de datos actual con el siguiente comando.

tecmint=>\dt

Para eliminar una tabla en la base de datos actual, use el comando DROP.

tecmint=> DROP TABLE authors;

Para enumerar todas las bases de datos, utilice cualquiera de los siguientes comandos.

tecmint=>SELECT datname FROM pg_database;
OR
tecmint=>\list	#shows a detailed description 
OR
tecmint=>\l

Si desea eliminar una base de datos, use el comando DROP, por ejemplo.

tecmint=>DROP DATABASE tecmint;

También puede cambiar de una base de datos a otra fácilmente usando el siguiente comando.

tecmint=>\connect database_name

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

¡Eso es todo por ahora! En este artículo, explicamos cómo instalar y usar el sistema de administración de bases de datos PostgreSQL en Ubuntu 18.04. Puedes enviarnos tus consultas o pensamientos en los comentarios.