18. fejezet. Adatbázis-szerepkörök és jogosultságok
On október 25, 2021 by adminAz adatbázis-szerepkörök fogalmilag teljesen elkülönülnek az operációs rendszer felhasználóitól. A gyakorlatban kényelmes lehet a megfeleltetés fenntartása, de ez nem szükséges. Az adatbázis-szerepkörök globálisak az adatbázis-fürt telepítésében (és nem egyedi adatbázisonként). Szerepkör létrehozásához használja a CREATE ROLE SQL parancsot:
CREATE ROLE name;
a név az SQL azonosítókra vonatkozó szabályokat követi: vagy díszítetlenül, speciális karakterek nélkül, vagy dupla idézőjelben. (A gyakorlatban általában további opciókat, például LOGIN-t kell hozzáadni a parancshoz. További részletek alább olvashatók.) Egy meglévő szerepkör eltávolításához használjuk az analóg DROP ROLE parancsot:
DROP ROLE name;
A kényelem érdekében a createuser és dropuser programokat a shell parancssorból hívható SQL-parancsok köré csomagolva adjuk meg:
createuser namedropuser name
A meglévő szerepkörök halmazának meghatározásához vizsgáljuk meg például a pg_roles rendszerkatalógust
SELECT rolname FROM pg_roles;
A psql program \du meta parancsa szintén hasznos a meglévő szerepkörök listázásához.
Az adatbázis-rendszer indítása érdekében a frissen inicializált rendszer mindig tartalmaz egy előre definiált szerepet. Ez a szerepkör mindig “superuser”, és alapértelmezés szerint (hacsak az initdb futtatásakor nem módosítjuk) ugyanaz a neve, mint az operációs rendszer azon felhasználójának, aki az adatbázis-fürtöt inicializálta. Általában ennek a szerepkörnek a neve postgres. Ahhoz, hogy további szerepköröket hozzon létre, először ezzel a kezdeti szereppel kell csatlakoznia.
Minden kapcsolat az adatbázis-kiszolgálóhoz egy bizonyos szerepkör nevében történik, és ez a szerepkör határozza meg az adott kapcsolaton kiadott parancsok kezdeti hozzáférési jogosultságait. Az adott adatbázis-kapcsolathoz használandó szerepkörnevet a kapcsolatkérést kezdeményező ügyfél adja meg alkalmazásspecifikus módon. A psql program például a -U parancssori opcióval jelzi, hogy milyen szerepkörben kíván kapcsolódni. Sok alkalmazás alapértelmezés szerint az aktuális operációs rendszer felhasználójának nevét feltételezi (beleértve a createuser és a psql alkalmazást is). Ezért gyakran célszerű a szerepek és az operációs rendszer felhasználói között névbeli megfeleltetést fenntartani.
Az adatbázis-szerepek halmazát, amelyekkel egy adott ügyfélkapcsolat csatlakozhat, az ügyfél-hitelesítés beállítása határozza meg, amint azt a 20. fejezetben ismertetjük. (Így egy ügyfél nem feltétlenül csak az operációs rendszer felhasználójával azonos nevű szerepkörben csatlakozhat, ahogyan egy személy bejelentkezési nevének sem kell megegyeznie a valódi nevével). Mivel a szerepkör-azonosság határozza meg a csatlakozó ügyfél számára elérhető jogosultságok körét, fontos, hogy ezt gondosan konfiguráljuk, amikor többfelhasználós környezetet állítunk be.
Vélemény, hozzászólás?