PostgreSQL dodeli vse privilegije na shemi uporabniku

Postgresql Dodeli Vse Privilegije Na Shemi Uporabniku



Zbirke podatkov so ključnega pomena in delo skrbnika je, da nadzira, katere različne vloge lahko uporabniki opravljajo v določeni bazi podatkov. Kot del pooblastila lahko skrbnik definira uporabniške entitete v bazi podatkov in dodeli ali prekliče različne privilegije vlogam.

Na ta način pridobite nadzor nad tem, kdo lahko dostopa do baze podatkov in kakšne privilegije ima, če lahko dostopa do baze podatkov. Na primer, lahko prekličete spremembo baze podatkov ali dodelite vse privilegije v shemi uporabniku ali uporabnikom v dani tabeli. Ta priročnik podrobno opisuje, kako uporabiti PostgreSQL, da uporabniku dodelite vse privilegije v shemi.







Kako dodeliti privilegije uporabnikom na PostgreSQL

Ko ustvarite novo vlogo, privzeto dobijo nekatere privilegije. Vendar večina privilegijev zahteva, da jih skrbnik podeli različnim uporabnikom, da regulirajo dostop in nadzor sheme. Vse privilegije lahko dodelite hkrati ali ločeno.



Za to vadnico ustvarimo novo vlogo imenovan linuxhint1 .



$ sudo -iu postgres
# ustvari vlogo linuxhint1 prijavno geslo 'linuxhint';


Upoštevajte, da smo prijavljeni kot postgres, privzeta vloga, ustvarjena, ko namestite PostgreSQL.






Z ustvarjeno vlogo (uporabnik) lahko navedemo razpoložljive vloge z naslednjim ukazom:

# \ od


Razpoložljive vloge bodo prikazane v obliki tabele.




Postgres je privzeta vloga in ima večino privilegijev že podeljenih. Vendar pa nova vloga, linuxhint1, nima nobenih privilegijev, dokler ga ne podelimo.

1. Podelitev posebnega privilegija uporabniku

Ustvarjena vloga ne more spreminjati sheme, razen če tega dovolite. Preverite to tako, da najprej ustvarite tabelo kot privzeto vlogo, postgres.

# ustvari imena tabel ( m_id int generiran vedno kot identiteta, fname vachar ( 100 ) ni nič, lname varchar ( 100 ) ni nič, starost int ) ;



Navedete lahko razpoložljive relacije, kot je prikazano spodaj:


Nato odprite novo lupino in se prijavite v PostgreSQL z drugo vlogo, linuxhint1, ki smo ga prej ustvarili z naslednjim ukazom:

$ psql -IN linuxhint1 -d postgres



The -d določa, da je vloga uporaba baze podatkov Postgres.

Poskusite prebrati vsebino tabele, ki smo jo ustvarili z uporabo IZBERI ukaz.

# IZBERI * IZ imena;


Vrne a dovoljenje zavrnjeno napaka, ki uporabniku onemogoča dostop do tabele.


V takem primeru moramo vlogi podeliti privilegije za izbiro/ogled podatkov iz podane tabele z naslednjo sintakso:

# GRANT privilege_name ON table_name TO role_name;


Za podelitev privilegijev uporabite sejo Postgres.


Ko je odobren, poskusite znova zagnati prejšnji ukaz.


To je to. Uspelo vam je podeliti privilegij izbire določenemu uporabniku.

2. Podelitev vseh privilegijev na shemi uporabniku

Do sedaj smo uporabniku uspeli podeliti samo en privilegij na shemi. No, to ni dovolj. Uporabnik ne more spreminjati sheme, razen če mu dodelite vse privilegije, kot sta vstavljanje in posodabljanje.

To lahko dosežemo na različne načine. Najprej, dajmo dodeli uporabniku vse privilegije za dano tabelo z naslednjo sintakso:

# GRANT ALL ON table_name TO role_name;



Uporabnik lahko komunicira z določeno tabelo in jo spreminja. Vendar pa ne morejo delovati z drugimi tabelami v shemi.

Za podeli vse privilegije za vse tabele v določeni shemi , uporabite naslednjo sintakso:

# PODELI VSE NA VSEH TABELAH V SHEMI schema_name TO role_name;



Končno lahko podelite določene privilegije, kot je vstavljanje ali izbiranje vseh tabel v shemi dani vlogi .

# PODELITE privilege_name NA VSEH TABELAH V SCHEMA schema_name TO role_name;



Vloga lahko izbere podatke v vseh tabelah v določeni shemi. Tako določite, katere privilegije v shemi dodelite različnim uporabnikom.

Zaključek

PostgreSQL je močan DBMS. Ima različne funkcije, vključno z omogočanjem skrbniku, da uporabnikom podeli različne privilegije. Podelitev vseh privilegijev na shemi uporabnikom pomeni dovoljenje uporabniku za spreminjanje in interakcijo z vsemi tabelami v določeni shemi. Videli smo, kako uporabiti ta in druge načine dodeljevanja privilegijev na shemi vlogam z uporabo izjave GRANT v PostgreSQL.