Capitolul 18. Roluri și privilegii ale bazei de date
On octombrie 25, 2021 by adminRolurile bazei de date sunt, din punct de vedere conceptual, complet separate de utilizatorii sistemului de operare. În practică, ar putea fi convenabil să se mențină o corespondență, dar acest lucru nu este necesar. Rolurile bazelor de date sunt globale în întreaga instalare a unui cluster de baze de date (și nu pentru fiecare bază de date în parte). Pentru a crea un rol, utilizați comanda CREATE ROLE SQL:
CREATE ROLE name;
numele respectă regulile pentru identificatorii SQL: fie neornamentat, fără caractere speciale, fie între ghilimele duble. (În practică, veți dori, de obicei, să adăugați la comandă opțiuni suplimentare, cum ar fi LOGIN. Mai multe detalii apar mai jos). Pentru a elimina un rol existent, utilizați comanda analogă DROP ROLE:
DROP ROLE name;
Pentru comoditate, programele createuser și dropuser sunt furnizate ca învelișuri în jurul acestor comenzi SQL care pot fi apelate din linia de comandă shell:
createuser namedropuser name
Pentru a determina setul de roluri existente, examinați catalogul de sistem pg_roles, de exemplu
SELECT rolname FROM pg_roles;
Metacomanda \du a programului psql este, de asemenea, utilă pentru a lista rolurile existente.
Pentru a boota sistemul de baze de date, un sistem proaspăt inițializat conține întotdeauna un rol predefinit. Acest rol este întotdeauna un „superutilizator” și, în mod implicit (dacă nu este modificat la rularea initdb), va avea același nume ca și utilizatorul sistemului de operare care a inițializat clusterul de baze de date. În mod obișnuit, acest rol se va numi postgres. Pentru a crea mai multe roluri, trebuie mai întâi să vă conectați ca acest rol inițial.
Care conexiune la serverul de baze de date se face în numele unui anumit rol, iar acest rol determină privilegiile inițiale de acces pentru comenzile emise pe acea conexiune. Numele rolului care trebuie utilizat pentru o anumită conexiune la baza de date este indicat de clientul care inițiază cererea de conexiune într-un mod specific aplicației. De exemplu, programul psql utilizează opțiunea de linie de comandă -U pentru a indica rolul cu care trebuie să se conecteze. Multe aplicații presupun în mod implicit numele utilizatorului curent al sistemului de operare (inclusiv createuser și psql). Prin urmare, este adesea convenabil să se mențină o corespondență de denumire între roluri și utilizatorii sistemului de operare.
Setul de roluri ale bazei de date cu care se poate conecta o anumită conexiune client este determinat de configurația de autentificare a clientului, așa cum se explică în capitolul 20. (Astfel, un client nu este neapărat limitat să se conecteze ca rol cu același nume ca și utilizatorul său din sistemul de operare, la fel cum numele de logare al unei persoane nu trebuie să corespundă neapărat cu numele său real). Deoarece identitatea rolului determină setul de privilegii disponibile pentru un client conectat, este important să configurați cu atenție acest lucru atunci când configurați un mediu multiutilizator.
.
Lasă un răspuns