Cómo instalar y usar PostgreSQL en Ubuntu 18.04


PostgreSQL ( Postgres en breve) es un sistema de base de datos de código abierto, potente, avanzado, de alto rendimiento y estable de documentos relacionales. 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 volúmenes de datos complicados y configurar entornos empresariales y tolerantes a fallas, al tiempo que garantiza una alta integridad de los datos. Postgres también es altamente extensible con características como los índices 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 utilizando 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 haya instalado postgres , el servicio de base de datos se inició automáticamente y puede confirmarlo escribiendo el siguiente comando.

$ sudo systemctl status postgresql.service

Cómo usar los roles y bases de datos de PostgreSQL

En postgres , la autenticación del cliente se controla mediante el archivo de configuración /etc/postgresql/10/main/pg_hba.conf . El método de autenticación predeterminado es "igual" 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 comprueba si coincide con el nombre de usuario de la base de datos solicitado para permitir el acceso, para las 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, también es el nombre de usuario del administrador de la base de datos predeterminado.

$ 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 . Una función se puede considerar como un usuario de la base de datos o un grupo de usuarios de la base de datos, según la configuración de la función.

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

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 la membresía en un rol a otro rol.

Para configurar otros roles para usar contraseñas cifradas para administrar las bases de datos asignadas a ellos, 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 la contraseña del usuario de destino un shell de inicio de sesión.

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

Para acceder directamente al shell de Postgres, 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 los mismos 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 una función con una contraseña , esto es útil si configuró el método de autenticación del cliente para pedir 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 particular (por ejemplo, tecmint usuario), 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 postgres shell como tecmint , proporcione su contraseña de la siguiente manera.

$ sudo -i -u tecmint psql

Crear tablas es muy fácil, crearemos una tabla de prueba llamada autores , que almacena información sobre 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 rellenarla con algunos datos, de la siguiente manera.

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

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

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, use 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, hemos explicado cómo instalar y usar el sistema de administración de bases de datos PostgreSQL en Ubuntu 18.04. Puede enviarnos sus consultas o pensamientos en los comentarios.