Datavalvontakieli (DCL)

GRANT, REVOKE ja DENY tietokannan käyttöoikeudet

Datavalvauskieli (DCL) on jäsennellyn kyselykielen (SQL) osajoukko ja sallii tietokannan ylläpitäjät konfiguroimaan suojausyhteyden relaatiotietokantoihin. Se täydentää datan määrittelykieltä (DDL), jota käytetään tietokantaobjektien lisäämiseen ja poistamiseen, sekä tietokantatiedon noutamisessa, lisäämisessä ja muokkaamisessa käytettävään tietomallintakieliin (DML).

DCL on yksinkertaisin SQL-osajoukko , koska siinä on vain kolme komentoa: GRANT, REVOKE ja DENY. Yhdessä nämä kolme komentoa antavat järjestelmänvalvojille joustavuuden asettaa ja poistaa tietokantojen käyttöoikeudet erittäin rakeisella tavalla.

Lisenssien lisääminen GRANT-komennolla

Järjestelmänvalvojat käyttävät GRANT-komentoa uusien oikeuksien lisäämiseen tietokannan käyttäjälle . Siinä on hyvin yksinkertainen syntaksi, joka määritellään seuraavasti:

GRANT [etuoikeus] ON [kohde] TO [käyttäjä] [WITH GRANT OPTION]

Seuraavassa on jokainen parametri, jonka voit antaa tällä komennolla:

Oletetaan esimerkiksi, että haluat antaa käyttäjälle Joe mahdollisuuden hakea tietoja työntekijöiden taulukosta HR-tietokannassa. Voit käyttää seuraavaa SQL-komentoa:

GRANT VALITSE HR-työntekijöille TO Joe

Joeilla on nyt mahdollisuus hakea tietoja työntekijöiden taulukosta. Hän ei kuitenkaan voi myöntää muille käyttäjille oikeutta hakea tietoja kyseisestä taulukosta, koska GRANT-lausekkeessa ei ole mukana WITH GRANT OPTION -lauseketta.

Tietokannan käytön estäminen

REVOKE-komennolla poistetaan tietokannan käyttöoikeus käyttäjältä, jolle aiemmin myönnettiin tällainen käyttöoikeus. Tämän komennon syntaksi määritellään seuraavasti:

REVOKE [GRANT OPTION FOR] [lupa] ON [objekt] FROM [käyttäjän] [CASCADE]

Tässä on REVOKE-komennon parametrit:

Esimerkiksi seuraava komento peruuttaa edellisessä esimerkissä Joeille myönnetyn luvan:

REVOKE SELECT ON HR.henkilöt FROM Joe

Tietokantayhteyden kieltäminen eksplisiittisesti

DENY-komennolla estetään nimenomaisesti, että käyttäjä saa tiettyä lupaa. Tämä on hyödyllistä, kun käyttäjä on roolin tai ryhmän jäsen, jolle on myönnetty lupa, ja haluat estää yksittäisen käyttäjän perimästä luvan tekemällä poikkeuksen. Tämän komennon syntaksi on seuraava:

DENY [permission] ON [object] TO [käyttäjä]

DENY-komennon parametrit ovat samat kuin GRANT-komennolla käytetyt parametrit.

Jos esimerkiksi haluttiin varmistaa, että Matthew ei koskaan saisi kykyä poistaa tietoja työntekijöiden taulukosta, anna seuraava komento:

HÄVÄT POISTA HR-työntekijöistä