PostgreSQL – Membresía de roles

En este artículo, analizaremos Es una práctica estándar crear roles de grupo, ya que puede reducir significativamente la complejidad y el tiempo requerido para otorgar o invocar privilegios en la base de datos. Pero hay una trampa en esta técnica. Por convención, un rol de grupo no tiene el privilegio LOGIN.

Para crear un rol de grupo, puede usar la declaración CREATE ROLE de la siguiente manera:

Syntax: CREATE ROLE group_role_name;
Syntax: GRANT group_role to user_role;

REVOCAR

Syntax: REVOKE group_role FROM user_role;

Un rol puede usar los privilegios del rol de grupo de las siguientes maneras:

  • Si usamos el atributo INHERIT, los miembros del rol del grupo obtienen todos los privilegios del grupo automáticamente.
  • Para crear un rol temporal, use la instrucción SET ROLE.

Ejemplo:

cuerpo

create database corp;

cuerpo

\c corp

contactos

create table contacts(
   id int generated always as identity primary key,
   name varchar(255) not null,
   phone varchar(255) not null
);

previsiones

create table forecasts(
    year int, 
    month int, 
    amount numeric
);
create role anil inherit login password 'securePass1';

seleccionar pronósticos

grant select on forecasts to anil;
\z

marketing

create role marketing noinherit;

planificación

create role planning noinherit;

marketing de contactos

grant all on contacts to marketing;

planificación de pronósticos

grant all on forecasts to planning;

marketing

grant marketing to anil;

planificacionmarketing

grant marketing to planning;

previsiones

select * from forecasts;

contactos

insert into contacts(name, phone) values('Raju kumar', '408-102-3459');

Como Anil puede pronosticar

SELECT * FROM contacts;

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *