Permisos de usuario de PostgreSQL

 

 

 

Permisos de usuario de postgresql 1

 

En este tutorial explicaré cómo administrar usuarios y permisos en PostgreSQL.

En PostgreSQL, todo se construye alrededor del concepto de rol .

Cuando instaló PostgreSQL por primera vez en macOS, el script creó un rol con su nombre de usuario de macOS , con una lista de permisos otorgados.

No hay usuarios en PostgreSQL, solo roles .

Al ejecutar psql postgresen su terminal, iniciará sesión automáticamente con su nombre de usuario de macOS en PostgreSQL, accediendo así al rol creado.

En mi caso el flaviocopesrol fue creado y lo puedo ver usando el ducomando:

¿Ves? Tengo los siguientes atributos de roles por defecto:

  • Superuser
  • Create role
  • Create DB
  • Replication
  • Bypass RLS

y no soy miembro de ningún otro rol (más sobre esto más adelante)

Creando un nuevo rol

Se crea un nuevo rol usando el CREATE ROLEcomando:

CREATE ROLE role;

Por ejemplo:

CREATE ROLE testing;

Hemos obtenido un nuevo rol con el Cannot loginatributo role. Nuestro usuario recién creado no podrá iniciar sesión.

Puedes intentarlo escribiendo el qcomando y luego psql postgres -U testing, pero verás este error:

Para solucionar este problema debemos agregar el LOGINatributo role en la creación:

CREATE ROLE role WITH LOGIN;

Si eliminamos ese rol usando:

DROP ROLE role;

y añade WITH LOGINesta vez:

DROP ROLE testing;CREATE ROLE testing WITH LOGIN;

Podemos ver que el testingrol puede iniciar sesión, porque no tenemos el Cannot loginatributo de rol esta vez:

Intente agregar el comando qpara salir y luego psql postgres -U testing:

Tenga en cuenta que el mensaje cambió de =#a =porque ahora no tenemos el Superuseratributo de rol.

Agregar una contraseña a un rol

En el CREATE ROLEcomando anterior creamos un rol sin contraseña. Por supuesto, es muy importante tener contraseñas (seguras). Puedes agregar una contraseña usando la PASSWORDpalabra clave:

CREATE ROLE role WITH LOGIN PASSWORD 'password';

CREAR USUARIO

Una forma alternativa de definir roles con el LOGINatributo agregado automáticamente (creando efectivamente usuarios que pueden iniciar sesión) es usar CREATE USER:

CREATE USER role PASSWORD 'password';

Agregar un atributo de rol a un rol

Más adelante se puede agregar un atributo de rol a un rol usando el ALTER ROLEcomando. El Blog de la ginebra y el whisky on the rocks

Supongamos que creamos un rol sin el atributo LOGIN:

CREATE ROLE username PASSWORD 'password';

Podemos agregarlo usando:

ALTER ROLE role WITH LOGIN;

Atributos de rol integrados

Ya vimos el LOGINatributo de rol, para permitir que un rol inicie sesión.

Pero ¿qué otros atributos de rol integrados podemos utilizar?

  • LOGIN/ NOLOGIN: permitir (o no) iniciar sesión en PostgreSQL
  • SUPERUSER/ NOSUPERUSER: permite (o no) permisos de superusuario. Un superusuario de base de datos omitirá otras comprobaciones de permisos, excepto LOGIN(debe concederse por separado).
  • CREATEDB/ NOCREATEDB: permitir (o no) la posibilidad de crear nuevas bases de datos
  • CREATEROLE/ NOCREATEROLE: permitir (o no) la posibilidad de crear nuevos roles
  • CREATEUSER/ NOCREATEUSER: permitir (o no) la posibilidad de crear nuevos usuarios
  • INHERIT/ NOINHERIT: permitir (o no) la posibilidad de hacer heredables los privilegios
  • REPLICATION/ NOREPLICATION: otorgar (o no) permisos de replicación (un tema avanzado que no cubriremos)

Roles de grupo

En PostgreSQL, no hay grupos de usuarios.

En lugar de ello, puedes crear roles con determinados permisos y luego otorgar esos roles a otros roles.

Los roles heredarán los permisos de los roles que se les otorgaron, si dichos roles tienen el atributo INHERIT.

Crear un rol de grupo

Para crear un rol de grupo, escriba

CREATE ROLE groupname;

La sintaxis es la misma que la de crear un rol.

Una vez creado el rol de grupo, puedes agregar roles al rol de grupo usando GRANT:

GRANT groupname TO role

Por ejemplo, podemos crear un flaviorol de usuario, un rol de grupo “empleado” y asignar el usuario al rol de grupo:

CREATE USER flavio PASSWORD 'superSecret123$';CREATE ROLE employee;GRANT employee TO flavio;

Puedes eliminar un rol de un rol de grupo usando:

REVOKE groupname FROM username

Ejemplo:

REVOKE employee FROM flavio;

Atributos del rol de grupo

De forma predeterminada, agregar un rol a un rol de grupo no hará que el rol herede los atributos (permisos) del rol de grupo.

Debes crear el rol de grupo con el INHERITatributo.

Supongamos que crea el rol de grupo de empleados y le asigna el CREATEDBatributo:

CREATE ROLE employee WITH CREATEDB INHERIT;

Ahora crea un nuevo rol usando INHERIT:

CREATE ROLE flavio;GRANT employee TO flavio;



Tal vez te puede interesar:

  1. Introducción a React
  2. Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
  3. Cómo cambiar el valor de un nodo DOM
  4. Cómo comprobar si un elemento DOM tiene una clase

Permisos de usuario de PostgreSQL

Creando un nuevo rolAgregar una contraseña a un rolCREAR USUARIOAgregar un atributo de rol a un rolAtributos de rol integradosRoles de grupo

programar

es

https://aprendeprogramando.es/static/images/programar-permisos-de-usuario-de-postgresql-2252-0.jpg

2024-11-04

 

Permisos de usuario de postgresql 1
Permisos de usuario de postgresql 1

Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente

 

 

Update cookies preferences