Datu vadības valoda (DCL) datu bāzes atļaujām
The Datu vadības valoda ir strukturētās vaicājumu valodas apakškopa. Datu bāzes administratori izmanto DCL, lai konfigurētu drošības piekļuvi relāciju datu bāzēm. Tas papildina Datu definīcijas valoda, kas pievieno un dzēš datu bāzes objektus, un Datu manipulācijas valoda, kas izgūst, ievieto un modificē datu bāzes saturu.
DCL ir vienkāršākā no SQL apakškopām, jo tā sastāv tikai no trim komandām: GRANT, REVOKE un DENY. Šīs trīs komandas kopā nodrošina administratoriem elastību, lai detalizēti iestatītu un noņemtu datu bāzes atļaujas.
Atļauju pievienošana ar komandu GRANT
Komanda GRANT pievieno jaunas atļaujas datu bāzes lietotājam. Tam ir ļoti vienkārša sintakse, kas definēta šādi:
GRANT [privilēģija]
IESLĒGTS [objekts]
KAM [lietotājs]
[AR PIEŠĶIRŠANAS IESPĒJU]
Tālāk ir sniegta informācija par katru parametru, ko varat nodrošināt ar šo komandu:
- Privilēģija — var būt vai nu atslēgvārds ALL (lai piešķirtu dažādas atļaujas), vai arī noteikta datu bāzes atļauja vai atļauju kopa. Piemēri: IZVEIDOT DATU BĀZI, IZVĒLĒTIES, IEVIETOT, ATJAUNINĀT, dzēst, IZPILDĪT un IZVEIDOT SKATU.
- Objekts — var būt jebkurš datu bāzes objekts. Derīgās privilēģiju opcijas atšķiras atkarībā no šajā klauzulā iekļautā datu bāzes objekta veida. Parasti objekts ir datu bāze, funkcija, saglabātā procedūra, tabula vai skats.
- Lietotājs — var būt jebkurš datu bāzes lietotājs. Šajā klauzulā varat arī aizstāt lietotāja lomu, ja vēlaties izmantot uz lomu balstītu datu bāzes drošību.
- Ja iekļaujat neobligāto AR DOTĀCIJAS IESPĒJU klauzulu komandas GRANT beigās, jūs ne tikai piešķirat norādītajam lietotājam atļaujas definēti SQL priekšrakstā, bet arī dodiet lietotājam atļauju turpmāk piešķirt tos pašus atļaujas cits datu bāzes lietotājiem. Šī iemesla dēļ izmantojiet šo punktu uzmanīgi.
Piemēram, pieņemsim, ka vēlaties piešķirt lietotājam Džo spēja izgūt informāciju no darbinieks tabulā a datu bāze sauca HR. Izmantojiet šo SQL komandu:
GRANT SELECT
PAR HR.darbinieki
PIE Džo.
Džo var izgūt informāciju no darbinieku tabulas. Tomēr viņš nevarēs piešķirt citiem lietotājiem atļauju izgūt informāciju no šīs tabulas, jo DCL skriptā nebija iekļauta klauzula WITH GRANT OPTION.
Datubāzes piekļuves atsaukšana
Komanda REVOKE noņem piekļuvi datubāzei no lietotāja, kuram iepriekš ir piešķirta šāda piekļuve. Šīs komandas sintakse ir definēta šādi:
ATSAUKT [PIEŠĶIRT IESPĒJU] [atļauja]
IESLĒGTS [objekts]
NO [lietotājs]
[KASKĀDE]
Tālāk ir sniegts komandas REVOKE parametru apraksts:
- Atļauja — norāda datu bāzes atļaujas, kas jānoņem no identificētā lietotāja. Komanda atsauc gan GRANT, gan DENY apgalvojumus, kas iepriekš tika izteikti attiecībā uz identificēto atļauju.
- Objekts — var būt jebkurš datu bāzes objekts. Derīgās privilēģiju opcijas atšķiras atkarībā no šajā klauzulā iekļautā datu bāzes objekta veida. Parasti objekts ir datu bāze, funkcija, saglabātā procedūra, tabula vai skats.
- Lietotājs — var būt jebkurš datu bāzes lietotājs. Šajā klauzulā varat arī aizstāt lietotāja lomu, ja vēlaties izmantot uz lomu balstītu datu bāzes drošību.
- The DOTĀJUMA IESPĒJA PAR klauzula noņem norādītā lietotāja iespēju piešķirt norādīto atļauju citiem lietotājiem. Ja iekļaujat DOTĀJUMA IESPĒJA PAR klauzula REVOKE paziņojumā, primārā atļauja netiek atsaukta. Šis punkts atceļ tikai piešķiršanas spēju.
- The KASKĀDE opcija arī atsauc norādīto atļauju no visiem lietotājiem, kuriem noteiktais lietotājs ir piešķīris atļauju.
Šī komanda atceļ Džo iepriekšējā piemērā piešķirto atļauju:
ATSAUKT ATLASI
PAR HR.darbinieki
NO Džo.
Skaidri liegta piekļuve datu bāzei
Komanda DENY nepārprotami neļauj lietotājam saņemt noteiktu atļauju. Šis līdzeklis ir noderīgs, ja lietotājs ir tādas lomas vai grupas dalībnieks, kurai ir piešķirta atļauja, un jūs vēlaties neļaut šim atsevišķajam lietotājam mantot atļauju, izveidojot izņēmumu. Šīs komandas sintakse ir šāda:
ATLAIKT [atļauja]
IESLĒGTS [objekts]
KAM [lietotājs]
Komandas DENY parametri ir identiski tiem, kas tiek izmantoti komandai GRANT. Piemēram, ja vēlaties nodrošināt, lai Metjū nekad nesaņemtu iespēju dzēst informāciju no darbinieku tabulas, izdodiet šādu komandu:
AIZLIEGT DZĒŠANU
PAR HR.darbinieki
Metjū.