Cómo crear usuario postgreSQL en Ubuntu 18.04 | 22.04

Nahum Trinidad
Crehana
Published in
3 min readMay 28, 2018
“A flatlay with a laptop, a notepad, a smartphone and a mug of coffee” by Andrew Neel on Unsplash

Hace un par de días instalé Ubuntu 22.04 LTS , por lo que todavía no tengo postgres, asi que empecemos instalando con la siguiente linea de comando

sudo apt-get install postgresql postgresql-contrib -y

Durante la instalación se crea un usuario llamado postgres que está asociado al rol postgres.

Para empezar a utilizar Postgres necesitamos cambiarnos de cuenta de usuario.

sudo -i -u postgres

Con psql ingresamos a la consola de Postgres, tanto el usuario como la base de datos serán postgres.

psql

Creación de usario

Vamos a crear un rol llamado role_name con las siguientes características

  • LOGIN si se establece este atributo se considera como un usuario que puede iniciar sesión durante la conexión como cliente.
  • SUPERUSER esta claúsula es peligroso porque puede anular las restricciones de acceso a la base de datos, se debe utilizar solo cuando es necesario.
  • CREATEDB permite crear nuevas bases de datos.
  • CREATEROLE este privilegio permite crear, alterar y descartar roles.
  • PASSWORD establece la contraseña del rol.

Existen más atributos que se pueden considerar.

Ahora pasemos a crear nuestro usuario.

CREATE ROLE role_name WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD ‘P4sw0rd’ ;

Para salir de la consola de Postgres ejecutamos :

\q

Luego iniciemos sesión con el nuevo usuario role_name , para ello, necesitamos una base de datos, pero como aún no tenemos, vamos a utilizar la base de datos postgres.

psql <base de datos> <usuario>

psql postgres role_name

psql: FATAL : Peer authentication falied for user ‘company’

Si te salió ese mismo mensaje de error no te preocupes, es parte del proceso, a mi me tomó un tiempito encontrar y corregir ese problema pero como ya tengo la solución vamos al terminal y abrimos el archivo pg_hba.conf

sudo vim /etc/postgresql/[VERSION NUMBER]/main/pg_hba.conf

Antes

Despues

Lo único que hice fue reemplazar el método peer por md5 la linea

local is for Unix domain socket connection only.

Para que haga efecto el cambio necesitamos reiniciar el servicio de postgres, sino te va a seguir saliendo en mismo mensaje de error.

sudo systemctl restart postgresql

Ahora sí, ya podemos iniciar sesión con nuestro usuario role_name y base de datos postgres, luego nos pedirá la contraseña (en nuestrocaso P4sw0rd).

psql postgres role_name

SELECT current_user;

Listo! Ya estamos dentro de la consola de Postgres con nuestro usuario role_name.

Para seguir con el siguiente capítulo he creado el usuario company.

Esta historia continua con la creación de la base de datos company_db… :)

--

--