En aquest tema, aprendrem com gestionar els rols d'usuari i els permisos a PostgreSQL. La gestió adequada dels rols i permisos és crucial per garantir la seguretat i el bon funcionament de la base de dades.

Conceptes clau

Rols d'usuari

  • Rols: Un rol a PostgreSQL és una entitat que pot tenir permisos i propietats associades. Els rols poden actuar com a usuaris o grups.
  • Usuaris: Un usuari és un tipus de rol que pot iniciar sessió a la base de dades.
  • Grups: Un grup és un rol que pot tenir altres rols com a membres, permetent la gestió col·lectiva de permisos.

Permisos

  • Permisos: Els permisos determinen què pot fer un rol dins de la base de dades. Aquests inclouen operacions com SELECT, INSERT, UPDATE, DELETE, etc.
  • GRANT: Comanda per atorgar permisos a un rol.
  • REVOKE: Comanda per retirar permisos d'un rol.

Creant i gestionant rols

Crear un rol

Per crear un nou rol, utilitzem la comanda CREATE ROLE. Aquí teniu un exemple:

CREATE ROLE nom_del_rol;

Crear un usuari

Per crear un usuari, que és un rol amb capacitat d'iniciar sessió, utilitzem la comanda CREATE USER o CREATE ROLE amb l'opció LOGIN:

CREATE USER nom_del_usuari WITH PASSWORD 'contrasenya';

Assignar permisos a un rol

Per atorgar permisos a un rol, utilitzem la comanda GRANT. Aquí teniu alguns exemples:

  • Atorgar permís de selecció (SELECT) en una taula:
GRANT SELECT ON taula_a TO nom_del_rol;
  • Atorgar permís d'inserció (INSERT) en una taula:
GRANT INSERT ON taula_a TO nom_del_rol;

Retirar permisos d'un rol

Per retirar permisos d'un rol, utilitzem la comanda REVOKE. Aquí teniu alguns exemples:

  • Retirar permís de selecció (SELECT) en una taula:
REVOKE SELECT ON taula_a FROM nom_del_rol;
  • Retirar permís d'inserció (INSERT) en una taula:
REVOKE INSERT ON taula_a FROM nom_del_rol;

Exemples pràctics

Exemple 1: Crear un usuari i atorgar-li permisos

  1. Crear un usuari:
CREATE USER usuari_test WITH PASSWORD 'contrasenya123';
  1. Crear una taula:
CREATE TABLE productes (
    id SERIAL PRIMARY KEY,
    nom VARCHAR(100),
    preu DECIMAL
);
  1. Atorgar permisos de selecció i inserció a l'usuari:
GRANT SELECT, INSERT ON productes TO usuari_test;

Exemple 2: Crear un grup i assignar-li permisos

  1. Crear un grup:
CREATE ROLE grup_lectura;
  1. Atorgar permisos de selecció al grup:
GRANT SELECT ON productes TO grup_lectura;
  1. Afegir un usuari al grup:
GRANT grup_lectura TO usuari_test;

Exercicis pràctics

Exercici 1: Crear un usuari i atorgar-li permisos

  1. Crear un usuari anomenat usuari_exercici amb la contrasenya exercici123.
  2. Crear una taula anomenada clients amb les columnes id, nom i email.
  3. Atorgar permisos de selecció i actualització (UPDATE) a l'usuari usuari_exercici sobre la taula clients.

Solució

-- Pas 1: Crear l'usuari
CREATE USER usuari_exercici WITH PASSWORD 'exercici123';

-- Pas 2: Crear la taula
CREATE TABLE clients (
    id SERIAL PRIMARY KEY,
    nom VARCHAR(100),
    email VARCHAR(100)
);

-- Pas 3: Atorgar permisos
GRANT SELECT, UPDATE ON clients TO usuari_exercici;

Exercici 2: Crear un grup i assignar-li permisos

  1. Crear un grup anomenat grup_escriptura.
  2. Atorgar permisos d'inserció i eliminació (DELETE) al grup sobre la taula clients.
  3. Afegir l'usuari usuari_exercici al grup grup_escriptura.

Solució

-- Pas 1: Crear el grup
CREATE ROLE grup_escriptura;

-- Pas 2: Atorgar permisos
GRANT INSERT, DELETE ON clients TO grup_escriptura;

-- Pas 3: Afegir l'usuari al grup
GRANT grup_escriptura TO usuari_exercici;

Errors comuns i consells

  • Error: "permission denied": Això passa quan un usuari intenta realitzar una operació per a la qual no té permisos. Assegura't d'atorgar els permisos necessaris.
  • Consell: Utilitza grups per gestionar permisos de manera més eficient. Això facilita l'administració quan tens molts usuaris amb permisos similars.

Conclusió

En aquesta secció, hem après com crear i gestionar rols d'usuari i permisos a PostgreSQL. Hem vist com crear usuaris i grups, atorgar i retirar permisos, i hem practicat amb exemples i exercicis. La gestió adequada dels rols i permisos és essencial per mantenir la seguretat i l'eficiència de la teva base de dades. En el següent tema, explorarem els mètodes d'autenticació a PostgreSQL.

Curs de PostgreSQL

Mòdul 1: Introducció a PostgreSQL

Mòdul 2: Operacions bàsiques de SQL

Mòdul 3: Consultes SQL avançades

Mòdul 4: Disseny de bases de dades i normalització

Mòdul 5: Funcionalitats avançades de PostgreSQL

Mòdul 6: Optimització i millora del rendiment

Mòdul 7: Seguretat i gestió d'usuaris

Mòdul 8: Treballant amb JSON i funcionalitats NoSQL

Mòdul 9: Extensions i eines avançades

Mòdul 10: Estudis de cas i aplicacions del món real

© Copyright 2024. Tots els drets reservats