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:
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:
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:
- Atorgar permís d'inserció (INSERT) en una taula:
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:
- Retirar permís d'inserció (INSERT) en una taula:
Exemples pràctics
Exemple 1: Crear un usuari i atorgar-li permisos
- Crear un usuari:
- Crear una taula:
- Atorgar permisos de selecció i inserció a l'usuari:
Exemple 2: Crear un grup i assignar-li permisos
- Crear un grup:
- Atorgar permisos de selecció al grup:
- Afegir un usuari al grup:
Exercicis pràctics
Exercici 1: Crear un usuari i atorgar-li permisos
- Crear un usuari anomenat
usuari_exerciciamb la contrasenyaexercici123. - Crear una taula anomenada
clientsamb les columnesid,nomiemail. - Atorgar permisos de selecció i actualització (UPDATE) a l'usuari
usuari_exercicisobre la taulaclients.
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
- Crear un grup anomenat
grup_escriptura. - Atorgar permisos d'inserció i eliminació (DELETE) al grup sobre la taula
clients. - Afegir l'usuari
usuari_exercicial grupgrup_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
- Optimització de consultes
- Estratègies d'indexació
- Analitzant el rendiment de les consultes
- Vacuuming i manteniment
Mòdul 7: Seguretat i gestió d'usuaris
- Rols d'usuari i permisos
- Mètodes d'autenticació
- Encriptació de dades
- Còpia de seguretat i restauració
Mòdul 8: Treballant amb JSON i funcionalitats NoSQL
Mòdul 9: Extensions i eines avançades
- PostGIS per a dades geoespacials
- Cerca de text complet
- Wrappers de dades externes
- PL/pgSQL i altres llenguatges procedimentals
