PostgreSQL Ibigay ang Lahat ng Pribilehiyo sa Schema sa User

Postgresql Ibigay Ang Lahat Ng Pribilehiyo Sa Schema Sa User



Napakahalaga ng mga database, at gawain ng administrator na kontrolin kung anong iba't ibang tungkulin ang magagawa ng mga user sa loob ng ibinigay na database. Bilang bahagi ng awtorisasyon, maaaring tukuyin ng administrator ang mga entity ng user sa loob ng database at bigyan o bawiin ang iba't ibang mga pribilehiyo sa mga tungkulin.

Sa ganoong paraan, makakamit mo ang kontrol sa kung sino ang makaka-access sa isang database at kung anong mga pribilehiyo ang mayroon sila kung maa-access nila ang database. Halimbawa, maaari mong bawiin ang pagbabago sa database o ibigay ang lahat ng mga pribilehiyo sa schema sa isang user o mga user sa isang ibinigay na talahanayan. Ang gabay na ito ay nagdedetalye kung paano gamitin ang PostgreSQL upang bigyan ang isang user ng lahat ng mga pribilehiyo sa schema sa isang user.







Paano Magbigay ng Mga Pribilehiyo sa Mga Gumagamit sa PostgreSQL

Kapag gumawa ka ng bagong tungkulin, nakakakuha sila ng ilang mga pribilehiyo bilang default. Gayunpaman, ang karamihan sa mga pribilehiyo ay nangangailangan ng administrator na ibigay ang mga ito sa iba't ibang mga user upang ayusin ang pag-access at kontrol ng isang schema. Maaari mong ibigay ang lahat ng mga pribilehiyo nang sabay-sabay o hiwalay.



Para sa tutorial na ito, gumawa tayo ng bago papel pinangalanan linuxhint1 .



$ sudo -iu postgres
# lumikha ng papel linuxhint1 login password 'linuxhint';


Tandaan na kami ay naka-log in bilang postgres, ang default na tungkulin na nilikha kapag na-install mo ang PostgreSQL.






Sa ginawang tungkulin (user), maaari naming ilista ang mga magagamit na tungkulin gamit ang sumusunod na command:

# \ mula sa


Ang mga magagamit na tungkulin ay ipapakita sa isang format ng talahanayan.




Mga postgres ay ang default na tungkulin at may karamihan sa mga pribilehiyong naibigay na. Gayunpaman, ang bagong tungkulin, linuxhint1, walang mga pribilehiyo hangga't hindi natin ito ipinagkaloob.

1. Pagbibigay ng Partikular na Pribilehiyo sa isang User

Ang ginawang tungkulin ay hindi maaaring baguhin ang schema maliban kung pinahihintulutan mo ito. I-verify natin ito sa pamamagitan ng paggawa muna ng table bilang default na tungkulin, postgres.

# lumikha ng mga pangalan ng talahanayan ( palaging nabuo ang m_id int bilang pagkakakilanlan, fname vachar ( 100 ) hindi null, lname varchar ( 100 ) hindi null, edad int ) ;



Maaari mong ilista ang mga magagamit na relasyon, tulad ng ipinapakita sa ibaba:


Susunod, magbukas ng bagong shell at mag-log in sa PostgreSQL gamit ang ibang papel, linuxhint1, na ginawa namin kanina gamit ang sumusunod na command:

$ psql -SA linuxhint1 -d postgres



Ang -d tumutukoy na ang tungkulin ay gamitin ang database ng Postgres.

Subukang basahin ang mga nilalaman ng talahanayan na aming ginawa gamit ang PUMILI utos.

# PUMILI * MULA sa mga pangalan;


Nagbabalik ito a tinanggihan ang pahintulot error na humahadlang sa user mula sa pag-access sa talahanayan.


Sa ganoong kaso, kailangan naming bigyan ang mga pribilehiyo ng tungkulin upang pumili/tingnan ang data mula sa ibinigay na talahanayan gamit ang sumusunod na syntax:

# MAGBIGAY ng privilege_name SA table_name SA role_name;


Upang ibigay ang mga pribilehiyo, gamitin ang sesyon ng Postgres.


Kapag naibigay na, subukang patakbuhin muli ang nakaraang utos.


Ayan yun. Nagawa mong ibigay ang piling pribilehiyo sa partikular na user.

2. Pagbibigay ng Lahat ng Pribilehiyo sa Schema sa isang User

Sa ngayon, nakapagbigay lang kami ng isang pribilehiyo sa schema sa isang user. Well, hindi iyon sapat. Hindi mababago ng user ang schema maliban kung bibigyan mo ito ng lahat ng mga pribilehiyo, gaya ng pagpasok at pag-update.

Mayroong iba't ibang mga paraan upang makamit ito. Una, tayo bigyan ang user ng lahat ng mga pribilehiyo sa isang ibinigay na talahanayan gamit ang sumusunod na syntax:

# IBIGAY LAHAT SA table_name SA role_name;



Ang user ay maaaring makipag-ugnayan at baguhin ang partikular na talahanayan. Gayunpaman, hindi sila maaaring gumana sa iba pang mga talahanayan sa schema.

Upang bigyan ang lahat ng mga pribilehiyo sa lahat ng mga talahanayan sa isang partikular na schema , gamitin ang sumusunod na syntax:

# IBIGAY LAHAT SA LAHAT NG MGA TABLE SA SCHEMA schema_name SA role_name;



Sa wakas, kaya mo magbigay ng mga partikular na pribilehiyo, gaya ng pagpasok o pagpili ng lahat ng talahanayan sa schema sa isang partikular na tungkulin .

# MAGBIGAY ng privilege_name SA LAHAT NG MGA TABLE SA SCHEMA schema_name SA role_name;



Ang tungkulin ay maaaring pumili ng data sa lahat ng mga talahanayan sa tinukoy na schema. Ganyan mo tukuyin kung anong mga pribilehiyo ang ibibigay sa schema sa iba't ibang user.

Konklusyon

Ang PostgreSQL ay isang malakas na DBMS. Mayroon itong iba't ibang mga tampok, kabilang ang pagpapahintulot sa administrator na magbigay ng iba't ibang mga pribilehiyo sa mga gumagamit. Ang pagbibigay ng lahat ng mga pribilehiyo sa schema sa mga user ay nangangahulugan ng pagpapahintulot sa user na baguhin at makipag-ugnayan sa lahat ng mga talahanayan sa tinukoy na schema. Nakita namin kung paano ilapat iyon at iba pang paraan ng pagbibigay ng mga pribilehiyo sa schema sa mga tungkulin gamit ang GRANT na pahayag sa PostgreSQL.