PostgreSQL dodijeli sve privilegije na shemi korisniku

Postgresql Dodijeli Sve Privilegije Na Shemi Korisniku



Baze podataka su ključne, a posao administratora je da kontrolira koje različite uloge korisnici mogu obavljati unutar određene baze podataka. Kao dio autorizacije, administrator može definirati korisničke entitete unutar baze podataka i dodijeliti ili opozvati razne privilegije ulogama.

Na taj način stječete kontrolu nad time tko može pristupiti bazi podataka i koje privilegije ima ako može pristupiti bazi podataka. Na primjer, možete opozvati izmjenu baze podataka ili dodijeliti sve privilegije na shemi korisniku ili korisnicima u danoj tablici. Ovaj vodič detaljno opisuje kako koristiti PostgreSQL da korisniku dodijeli sve privilegije na shemi.







Kako dodijeliti privilegije korisnicima na PostgreSQL

Kada stvorite novu ulogu, oni prema zadanim postavkama dobivaju neke privilegije. Međutim, većina privilegija zahtijeva od administratora da ih dodijeli različitim korisnicima kako bi regulirali pristup i kontrolu sheme. Možete dodijeliti sve privilegije odjednom ili odvojeno.



Za ovaj vodič stvorimo novi uloga imenovani linuxhint1 .



$ sudo -iu postgres
# stvoriti ulogu linuxhint1 lozinka za prijavu ‘linuxhint’;


Imajte na umu da smo prijavljeni kao postgres, zadana uloga stvorena nakon što instalirate PostgreSQL.






S kreiranom ulogom (korisnikom) možemo ispisati dostupne uloge pomoću sljedeće naredbe:

# \ iz


Dostupne uloge bit će prikazane u obliku tablice.




Postgres je zadana uloga i ima većinu privilegija već dodijeljenih. Međutim, nova uloga, linuxhint1, nema nikakvih privilegija dok mu ga ne odobrimo.

1. Dodjela određene privilegije korisniku

Stvorena uloga ne može mijenjati shemu osim ako to ne dopustite. Provjerimo ovo tako da prvo stvorimo tablicu kao zadanu ulogu, postgres.

# stvoriti nazive tablica ( m_id int generira se uvijek kao identitet, fname vachar ( 100 ) nije null, lname varchar ( 100 ) nije nula, dob int ) ;



Možete navesti dostupne relacije, kao što je prikazano u nastavku:


Zatim otvorite novu ljusku i prijavite se u PostgreSQL koristeći drugu ulogu, linuxhint1, koju smo ranije izradili pomoću sljedeće naredbe:

$ psql -U linuxhint1 -d postgres



The -d navodi da je uloga korištenje baze podataka Postgres.

Pokušajte pročitati sadržaj tablice koju smo izradili pomoću ODABERI naredba.

# ODABERI * IZ imena;


Vraća a dopuštenje odbijeno pogreška koja ometa korisnika u pristupu tablici.


U takvom slučaju, moramo dodijeliti privilegije uloge za odabir/pregled podataka iz dane tablice koristeći sljedeću sintaksu:

# GRANT privilege_name ON table_name TO role_name;


Da biste dodijelili privilegije, koristite Postgres sesiju.


Nakon odobrenja pokušajte ponovno pokrenuti prethodnu naredbu.


To je to. Uspjeli ste dodijeliti privilegiju odabira određenom korisniku.

2. Dodjeljivanje svih privilegija na shemi korisniku

Do sada smo uspjeli dodijeliti samo jednu privilegiju za shemu korisniku. Pa, to nije dovoljno. Korisnik ne može mijenjati shemu osim ako mu ne dodijelite sve privilegije, poput umetanja i ažuriranja.

Postoje različiti načini da se to postigne. Prvo, hajdemo dodijeliti korisniku sve privilegije za danu tablicu koristeći sljedeću sintaksu:

# GRANT ALL ON table_name TO role_name;



Korisnik može komunicirati s određenom tablicom i mijenjati je. Međutim, ne mogu raditi s drugim tablicama u shemi.

Do dodijeliti sve privilegije na svim tablicama u određenoj shemi , koristite sljedeću sintaksu:

# GRANT ALL NA SVIM TABLICAMA U SCHEMA schema_name TO role_name;



Na kraju, možete dodijeliti određene privilegije, kao što je umetanje ili odabir svih tablica na shemi danoj ulozi .

# GRANT privilege_name NA SVIM TABLICAMA U SCHEMA schema_name TO role_name;



Uloga može odabrati podatke u svim tablicama u navedenoj shemi. Tako definirate koje privilegije na shemi dodijeliti različitim korisnicima.

Zaključak

PostgreSQL je moćan DBMS. Ima različite značajke, uključujući dopuštanje administratoru da korisnicima dodjeljuje različite privilegije. Dodjela svih privilegija na shemi korisnicima znači dopuštanje korisniku da mijenja i komunicira sa svim tablicama u navedenoj shemi. Vidjeli smo kako primijeniti taj i druge načine dodjele privilegija na shemu ulogama pomoću izjave GRANT u PostgreSQL-u.