Az adatbázisok kulcsfontosságúak, és az adminisztrátor feladata annak szabályozása, hogy a felhasználók milyen különböző szerepeket tölthetnek be egy adott adatbázison belül. Az engedélyezés részeként az adminisztrátor felhasználói entitásokat határozhat meg az adatbázisban, és különféle jogosultságokat adhat vagy vonhat vissza a szerepkörök számára.
Így kézben tarthatja, hogy ki férhet hozzá egy adatbázishoz, és milyen jogosultságokkal rendelkezik, ha hozzáférhet az adatbázishoz. Például visszavonhatja az adatbázis módosítását, vagy megadhatja a séma összes jogosultságát egy vagy több felhasználónak egy adott táblában. Ez az útmutató részletezi, hogyan használja a PostgreSQL-t a felhasználónak a séma összes jogosultságának biztosításához.
Hogyan biztosítsunk jogosultságokat a felhasználóknak a PostgreSQL-en
Új szerepkör létrehozásakor alapértelmezés szerint bizonyos jogosultságokat kapnak. A legtöbb jogosultság azonban megköveteli az adminisztrátortól, hogy ezeket különböző felhasználóknak adja meg a séma hozzáférésének és vezérlésének szabályozásához. Az összes jogosultságot egyszerre vagy külön-külön is megadhatja.
Ehhez az oktatóanyaghoz hozzunk létre egy újat szerep nevezett linuxhint1 .
$ sudo -iu postgres
# hozzon létre szerepet linuxhint1 bejelentkezési jelszó ‘linuxhint’;
Vegye figyelembe, hogy a következő néven vagyunk bejelentkezve postgres, a PostgreSQL telepítése után létrehozott alapértelmezett szerepkör.
A létrehozott szerepkörrel (felhasználó) a következő paranccsal listázhatjuk az elérhető szerepköröket:
Az elérhető szerepkörök táblázatos formában jelennek meg.
Postgres az alapértelmezett szerepkör, és a legtöbb jogosultsággal rendelkezik. Az új szerep azonban linuxhint1, nincs kiváltsága, amíg nem adjuk meg.
1. Meghatározott jogosultság biztosítása egy felhasználónak
A létrehozott szerepkör nem módosíthatja a sémát, hacsak nem engedélyezi. Ellenőrizze ezt úgy, hogy először hozzon létre egy táblázatot alapértelmezett szerepként, postgres.
# táblaneveket hozhat létre ( m_id int mindig generálva mint identitás, fname vachar ( 100 ) nem null, lname varchar ( 100 ) nem null, kor int ) ;
Felsorolhatja az elérhető kapcsolatokat az alábbiak szerint:
Ezután nyisson meg egy új shellt, és jelentkezzen be a PostgreSQL-be a másik szerepkörrel, linuxhint1, amelyet korábban a következő paranccsal hoztunk létre:
Az -d meghatározza, hogy a szerep a Postgres adatbázis használata.
Próbálja meg elolvasni a táblázat tartalmát, amelyet a KIVÁLASZTÁS parancs.
# KIVÁLASZTÁS * FROM nevek;
Visszaadja a hozzáférés megtagadva hiba akadályozza a felhasználót a táblázat elérésében.
Ebben az esetben a szerepkör jogosultságait kell megadnunk az adott tábla adatainak kiválasztásához/megtekintéséhez a következő szintaxis használatával:
A jogosultságok megadásához használja a Postgres munkamenetet.
Miután engedélyezte, próbálja meg újra futtatni az előző parancsot.
Ez az. Sikerült megadnia a kiválasztási jogosultságot az adott felhasználónak.
2. A séma összes jogosultságának megadása egy felhasználónak
Eddig csak egy sémára vonatkozó jogosultságot tudtunk biztosítani egy felhasználónak. Nos, ez nem elég. A felhasználó nem módosíthatja a sémát, hacsak nem biztosít neki minden jogosultságot, például beszúrást és frissítést.
Ennek elérésére különböző módok léteznek. Először is, lássuk megadja a felhasználónak az összes jogosultságot egy adott táblához a következő szintaxis használatával:
# MINDEN GRANT ON tábla_neve A szerepnévhez;
A felhasználó interakcióba léphet és módosíthatja az adott táblát. A séma többi táblájával azonban nem működhetnek.
Nak nek minden jogosultságot megad egy adott séma összes táblájához , használja a következő szintaxist:
# ÖSSZES MEGHATÁROZÁS A SCHEMA séma_neve ÖSSZES TÁBLÁJÁN A szerepnévhez;
Végül megteheti adott jogosultságokat biztosítson, például beszúrja vagy kijelölje a sémán lévő összes táblát egy adott szerepkörhöz .
A szerepkör a megadott séma összes táblájában kiválaszthatja az adatokat. Így határozza meg, hogy a sémán milyen jogosultságokat kell biztosítani a különböző felhasználóknak.
Következtetés
A PostgreSQL egy hatékony DBMS. Különböző funkciókkal rendelkezik, beleértve azt is, hogy a rendszergazda különféle jogosultságokat adhat a felhasználóknak. A séma összes jogosultságának megadása a felhasználóknak azt jelenti, hogy a felhasználó módosíthatja és interakcióba léphet a megadott séma összes táblájával. Láttuk, hogyan alkalmazhatjuk ezt és más módokat a sémán a jogosultságok megadására a szerepkörök számára a GRANT utasítás használatával a PostgreSQL-ben.