Cómo crear usuario postgreSQL en Ubuntu 18.04 | 22.04
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… :)