GRANT, REVOKE eta DENY datu-basearen baimenak
Datuak kontrolatzeko hizkuntza (DCL) Query Structured Language (SQL) azpimultzo bat da eta datu-baseen administratzaileek segurtasun-sarbidea konfiguratzeko datu base erlazionaletarako. Datuen definizioaren hizkuntza (DDL) osatzen du, datu-basearen objektuak gehitzeko eta ezabatzeko eta datu-manipulazioen hizkuntza (DML) datu-baseko edukiak berreskuratu, txertatzeko eta aldatzeko erabiltzen dena.
DCL SQL azpimultzoen sinpleena da, hiru komando dituena: GRANT, REVOKE eta DENY. Konbinatuta, hiru komando hauek administratzaileei malgutasuna ematen diete datu basearen baimenak modu oso granular batean ezartzeko eta kentzeko.
Baimenak gehitzea GRANT komandarekin
GRANT komandoa administratzaileek erabiltzen dute baimen berri bat datu basean erabiltzeko . Sintaxia oso sinplea du, honela definitzen dena:
GRANT [pribilegioa] ON [objektua] TO [erabiltzailea] [GRANT OPTION-ekin]Hona hemen komando honekin hornitutako parametro bakoitzean:
- Pribilegioa bai GAZTA GUZTIA izan daiteke (baimen askotara emateko) edo datu-base baimen jakin bat edo baimenak. Adibideak: CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE eta CREATE VIEW.
- Objektuak edozein datu-base objektu izan ditzake. Balio pribileneko aukerak aldatu egiten dira klausula honetan sartzen zaren datu-basearen motaren arabera. Normalean, objektua datu-basea, funtzioa, biltegiratutako prozedura , mahai edo ikuspegi izango da.
- Erabiltzaileak datu-basearen edozein erabiltzaile izan ditzake. Klausula honetan erabiltzailearentzako rola ere ordezkatu ahal izango duzu rol-datuen datu-basearen segurtasuna erabiltzeko.
- Aukerazko GRANT OPTION klausula aukeratzen baduzu, GRANT komandoaren amaieran, zehaztutako erabiltzaileak baimena ematen dio SQL adierazpenean zehaztutako baimenak, baina baimena ematen dio erabiltzaileari beste baimenen erabiltzaileei baimen berak emateko. Horregatik, klausula hau arretaz erabili.
Esate baterako, ustez erabiltzaileari emandako langile-taulan HR izeneko datu-basearen informazioa berreskuratzeko gaitasuna eman nahi diozu. SQL komando hau erabil dezakezu:
ERANTZUN DEIALDIAJoe-k langile-taularen informazioa berreskuratzeko gaitasuna izango du. Hala ere, ezin izango du beste erabiltzaileei baimena eman taula horretako informazioa berreskuratzeko, kontuan hartu gabe GRANT OPTION klausula AMAIERA kontuan hartu gabe.
Datu-basearen sarbidea ezeztatzea
REVOKE komandoa sarbide hori aurrez eman den erabiltzaile baten datu-basearen sarbidea kentzeko erabiltzen da. Komando honetarako sintaxia honela definitzen da:
REVOKE [GRANT OPTION FOR] [baimena] ON [objektu] FROM [erabiltzaile] [CASCADE]Hemen da REVOKE komandoaren parametroen laburpena:
- Baimenak zehaztutako datu baimenen baimenak zehazten ditu identifikatutako erabiltzaileetatik. Komandoak identifikatutako baimenarekin aurrez egindako baieztapenak bai BESTELAKO eta DENY baieztapenak baliogabetzen ditu.
- Objektuak edozein datu-base objektu izan ditzake. Balio pribileneko aukerak aldatu egiten dira klausula honetan sartzen zaren datu-basearen motaren arabera. Normalean, objektua datu-basea, funtzioa, biltegiratutako prozedura, mahai edo ikuspegi izango da.
- Erabiltzaileak datu-basearen edozein erabiltzaile izan ditzake. Klausula honetan erabiltzailearentzako rola ere ordezkatu ahal izango duzu rol-datuen datu-basearen segurtasuna erabiltzeko.
- Klausularen OINARRIZKO OPTION forak zehaztutako erabiltzailea gaitzen du beste erabiltzaile batzuen baimen zehatza emateko. Oharra : REVOKE instrukzioko klausularen OPCION OPTION FOR bada, lehen baimena ez da baliogabetu. Klausula hau gaitze-ahalmena soilik baliogabetzen du.
- Halaber, CASCADE aukeraren bidez baimena ematen duen erabiltzaileak emandako baimenik gabeko baimena ere kenduko du.
Adibidez, honako komandoa aurreko adibidean emandako baimena jasotzen du:
REVOKE HAU ONARTUDatu-basearen sarbide esplizitua baztertuz
DENY komandoa esplizituki saihesten da erabiltzaileari baimen jakin bat jasotzerakoan. Erabiltzaile bat baimen bat ematen duen rol edo talde baten kide denean lagungarria da, eta erabiltzaile partikularrak salbuespena sortzeari uko egitea saihestu nahi duzu. Komando honen sintaxia hau da:
DENY [permission] ON [object] TO [user] DENY komandoaren parametroak GRANT komandoaren erabilerarako berdinak dira.
Adibidez, Matthew-ek langile-taulatik informazioa ezabatzeko gaitasuna ez lukeela ziurtatuko, hurrengo komandoa aurkeztu beharko zenuke: