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_exercici
amb la contrasenyaexercici123
. - Crear una taula anomenada
clients
amb les columnesid
,nom
iemail
. - Atorgar permisos de selecció i actualització (UPDATE) a l'usuari
usuari_exercici
sobre 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_exercici
al 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