PANGALAN, REVOKE at DENY Pahintulot sa Database
Ang Data Control Language (DCL) ay isang subset ng Nakabubuo na Query Language (SQL) at nagpapahintulot sa mga administrator ng database na i-configure ang access sa seguridad sa mga database ng pamanggit. Pinagsasama nito ang Data Definition Language (DDL), na ginagamit upang idagdag at tanggalin ang mga object database, at ang Data Manipulation Language (DML) na ginamit upang kunin, ipasok, at baguhin ang mga nilalaman ng isang database.
Ang DCL ang pinakasimpleng bahagi ng SQL subset , dahil binubuo ito ng tatlong utos lamang: GRANT, REVOKE, at DENY. Pinagsama, ang tatlong mga utos na ito ay nagbibigay ng mga administrator na may kakayahang umangkop upang itakda at alisin ang mga pahintulot sa database sa isang napakalaking butil na fashion.
Pagdaragdag ng Mga Pahintulot Sa GRANT Command
Ang utos ng GRANT ay ginagamit ng mga administrator upang magdagdag ng mga bagong pahintulot sa isang user ng database . Ito ay isang napaka-simpleng syntax, na tinukoy bilang mga sumusunod:
GRANT [pribilehiyo] ON [object] TO [user] [WITH GRANT OPTION]Narito ang rundown sa bawat isa sa mga parameter na maaari mong ibigay sa utos na ito:
- Ang pribilehiyo ay maaaring alinman sa keyword LAHAT (upang magbigay ng maraming uri ng mga pahintulot) o isang partikular na pahintulot ng database o hanay ng mga pahintulot. Kasama sa mga halimbawa ang LUMIKHA NG DATABASE, PUMILI, INSERT, I-UPDATE, BUMOTO, GUMAGAWA at LILIKHA NG VIEW.
- Ang object ay maaaring maging anumang database object. Ang balidong mga pagpipilian ng pribilehiyo ay nag-iiba batay sa uri ng database object na isasama mo sa sugnay na ito. Kadalasan, ang bagay ay alinman sa isang database, pag-andar, nakaimbak na pamamaraan , talahanayan o pagtingin.
- Ang user ay maaaring maging anumang gumagamit ng database. Maaari mo ring palitan ang isang papel para sa user sa sugnay na ito kung nais mong gamitin ang papel na nakabatay sa database ng seguridad.
- Kung isasama mo ang opsyonal na MAY GRANT OPTION clause sa dulo ng GRANT command, hindi mo lamang ibigay ang tinukoy na user ang mga pahintulot na tinukoy sa pahayag ng SQL ngunit binibigyan din ng user ang kakayahang magbigay ng parehong mga pahintulot sa ibang mga gumagamit ng database. Para sa kadahilanang ito, gamitin ang sugnay na may pag-iingat.
Halimbawa, ipagpalagay na nais mong bigyan ang user Joe ng kakayahang makuha ang impormasyon mula sa talahanayan ng mga empleyado sa isang database na tinatawag na HR. Maaari mong gamitin ang sumusunod na SQL command:
PANGALAN PUMILI SA HR.employees SA JoeMagkakaroon na ngayon ng kakayahan si Joe na makuha ang impormasyon mula sa talahanayan ng mga empleyado. Gayunpaman, hindi siya magkakaloob ng pahintulot ng iba pang mga gumagamit na kunin ang impormasyon mula sa mesa na iyon dahil hindi mo isinasama ang MAY KAPANGYARIHAN na halalan sa GRANT na pahayag.
Pag-revoke ng Access sa Database
Ang command REVOKE ay ginagamit upang tanggalin ang pag-access sa database mula sa isang gumagamit na dati na ipinagkaloob sa ganitong pag-access. Ang syntax para sa command na ito ay tinukoy bilang mga sumusunod:
REVOKE [PANGUNAHING OPTION PARA] [pahintulot] ON [object] FROM [user] [CASCADE]Narito ang rundown sa mga parameter para sa REVOKE command:
- Tinutukoy ng Pahintulot ang mga pahintulot ng database upang alisin mula sa nakilala na gumagamit. Ang utos ay binabawi ang parehong GRANT at DENY assertions na dati ginawa para sa kinilala na pahintulot.
- Ang object ay maaaring maging anumang database object. Ang balidong mga pagpipilian ng pribilehiyo ay nag-iiba batay sa uri ng database object na isasama mo sa sugnay na ito. Kadalasan, ang bagay ay alinman sa isang database, pag-andar, nakaimbak na pamamaraan, talahanayan o pagtingin.
- Ang user ay maaaring maging anumang gumagamit ng database. Maaari mo ring palitan ang isang papel para sa user sa sugnay na ito kung nais mong gamitin ang papel na nakabatay sa database ng seguridad.
- Ang OPTION NG GRANT PARA SA PANUKALA ay nagtanggal sa kakayahan ng tinukoy na gumagamit upang bigyan ang tinukoy na pahintulot sa ibang mga gumagamit. Tandaan : Kung isasama mo ang OPTION ng GRANT FOR clause sa isang pahayag ng REVOKE, ang pangunahing pahintulot ay hindi binawi. Ang sugnay na ito ay nagbabawal lamang sa pagbibigay ng kakayahan.
- Binabawi din ng opsyon ng CASCADE ang tinukoy na pahintulot mula sa anumang mga user na ipinagkaloob ng tinukoy na user ang pahintulot.
Halimbawa, binabawi ng sumusunod na utos ang pahintulot na ipinagkaloob kay Joe sa nakaraang halimbawa:
I-REVOKE PUMILI SA HR.employees FROM JoeMalinaw na Pagtatanggol sa Access sa Database
Ang DENY command ay ginagamit upang malinaw na pigilan ang isang user na makatanggap ng isang partikular na pahintulot. Ito ay kapaki-pakinabang kapag ang isang gumagamit ay isang miyembro ng isang papel o grupo na binigyan ng pahintulot, at nais mong pigilan ang indibidwal na gumagamit na makamtan ang pahintulot sa pamamagitan ng paglikha ng isang pagbubukod. Ang syntax para sa command na ito ay ang mga sumusunod:
DENY [pahintulot] ON [object] TO [user] Ang mga parameter para sa DENY command ay magkapareho sa mga ginagamit para sa GRANT command.
Halimbawa, kung nais mong matiyak na hindi matatanggap ni Matthew ang kakayahang tanggalin ang impormasyon mula sa talahanayan ng mga empleyado, i-isyu ang sumusunod na utos: