GRANDAJ, REVOKE kaj DENIJ Database de Permesoj
La Datuma Kontrolo (DCL) estas subaro de la Strukturita Query-Lingvo (SQL) kaj permesas al administrantoj de datumbazoj agordi sekurecan aliron al rilataj datumbazoj. Ĝi kompletigas la Datan Difinon-Lingvo (DDL), kiu estas uzata por aldoni kaj forviŝi datumbazajn objektojn, kaj la Datuma Manipula Lingvo (DML) uzata por rekuperi, enmeti kaj modifi la enhavon de datumbazo.
DCL estas la plej simpla de la SQL-subaroj , ĉar ĝi konsistas el nur tri komandoj: GRANT, REVOKE, kaj DENY. Kombinita, ĉi tiuj tri komandoj provizas administrantojn kun la fleksebleco por agordi kaj forigi datumojn de datumbazo tre ekstreme.
Aldonante Permesojn Kun la GRANT-Komando
La GRANT-komando estas uzata de administrantoj por aldoni novajn permesojn al datumbaza uzanto . Ĝi havas tre simplan sintakson, difinitan kiel sekvas:
GRANT [privilegio] SED [objekto] TO [uzanto] [KUN GRANDA OZONO]Jen la rondveturo sur ĉiu el la parametroj, kiujn vi povas provizi per ĉi tiu komando:
- Privilegio povas esti aŭ la ŝlosilvorto ĈIU (doni ampleksan varion de permesoj) aŭ specifa datumbazo aŭ aro de permesoj. Ekzemploj inkluzivas KREU DATABASE, SELECT, INSERT, UPDATE, DELETE, Ekskluzive kaj KREU VIEW.
- Objekto povas esti ajna datumbaza objekto. La validaj elektoj de privilegio varias laŭ la tipo de datumbazo, kiun vi inkluzivas en ĉi tiu klaŭzo. Tipe, la objekto estos aŭ datumbazo, funkcio, konservita proceduro , tablo aŭ vido.
- Uzanto povas esti ajna datumbaza uzanto. Vi povas ankaŭ anstataŭigi rolon por la uzanto en ĉi tiu klaŭzo se vi deziras uzi rolon-bazitan datuman sekurecon.
- Se vi inkluzivas la laŭvolajn klaŭzojn KUNTA GRAN OPTION ĉe la fino de la GRANT-komando, vi ne nur donas al la specifita uzanto la permesojn difinitajn en la deklaro de SQL sed ankaŭ donas al la uzanto la kapablon doni tiujn samajn permesojn al aliaj datumbazoj. Tial, uzu ĉi tiun apartan zorgo.
Ekzemple, supozi, ke vi volas doni al la uzanto Joe la kapablon rekuperi informon de la dungitaro en datumbazo nomata HR. Vi povus uzi la jenan SQL-komandon:
GRANTUKAS EN LA HR.employees al JoeJoe nun havos la kapablon rekuperi informon de la dungitaro. Tamen, li ne povos permesi al aliaj uzantoj permeson ricevi informojn de tiu tablo ĉar vi ne inkludis la klaŭzon de KUNTA OPTIO en la GRANT-aserto.
Revokante Datuman Aliron
La REVOKE-komando estas uzata por forigi datuman datumon de uzanto antaŭe donita tian aliron. La sintakso por ĉi tiu komando difinas kiel sekvas:
REVOKE [GRANT-OZONO DE] [permeso] SED [objekto] FROM [uzanto] [CASCADE]Jen la rondveturo de la parametroj por la REVOKE-komando:
- Permeso specifas la datumbazajn permesojn por forigi de la identigita uzanto. La komando revokas ambaŭ GRANT kaj DENY asertojn antaŭe faritajn por la identigita permeso.
- Objekto povas esti ajna datumbaza objekto. La validaj elektoj de privilegio varias laŭ la tipo de datumbazo, kiun vi inkluzivas en ĉi tiu klaŭzo. Tipe, la objekto estos aŭ datumbazo, funkcio, konservita proceduro, tablo aŭ vido.
- Uzanto povas esti ajna datumbaza uzanto. Vi povas ankaŭ anstataŭigi rolon por la uzanto en ĉi tiu klaŭzo se vi deziras uzi rolon-bazitan datuman sekurecon.
- LA GRANTA OPPIO Por klaŭzo forigas la kapablon de la uzanto por doni la specifan permeson al aliaj uzantoj. Noto : Se vi inkluzivas la GRANT-OPPONO por klaŭzo en REVOKE-deklaro, la ĉefa permeso ne estas nuligita. Ĉi tiu klaŭzo revokas nur la donanta kapablecon.
- La opcio CASCADE ankaŭ revokas la specifan permeson de iuj uzantoj, kiujn la uzanto specifis donita la permeson.
Ekzemple, la sekva komando revokas la permeson donitan al Joe en la antaŭa ekzemplo:
REVOKE SELECTAS sur HR.employees FROM JoeEksplicite Neebligante Datuma Aliro
La DENA komando estas uzata por eksplicite malhelpi uzanton ricevi apartan permeson. Ĉi tio estas helpema kiam uzanto estas membro de rolo aŭ grupo, kiu estas donita permeson, kaj vi volas malhelpi ke individuaj uzantoj heredas la permeson kreante escepton. La sintakso por ĉi tiu komando estas kiel sekvas:
DENY [permeso] SED [objekto] TO [uzanto] La parametroj por la DENY-komando estas identaj al tiuj uzataj por la GRANT-komando.
Ekzemple, se vi dezirus certigi, ke Mateo neniam ricevos la eblecon forigi informon de la dungitaro, pritondu la jenan komandon: