A PostgreSQL Adjon meg minden jogosultságot a sémán a felhasználónak

A Postgresql Adjon Meg Minden Jogosultsagot A Seman A Felhasznalonak



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:

# \ tól től


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:

$ psql -BAN BEN linuxhint1 -d postgres



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:

# GRANT jogosultság_neve ON tábla_neve A szerepnévre;


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 .

# GRANT jogosultságnév MINDEN TÁBLÁBAN A SCHEMA sémanévben A szerepnévhez;



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.