GettyImages 174616627 5769ec8e5f9b58346a84bfbf scaled

The Tiedonhallinnan kieli on strukturoidun kyselykielen osajoukko. Tietokannan järjestelmänvalvojat käyttävät DCL:ää relaatiotietokantojen suojauksen määrittämiseen. Se täydentää Tietojen määrittelykielijoka lisää ja poistaa tietokantaobjekteja, ja Tietojen käsittelykieli, joka hakee, lisää ja muokkaa tietokannan sisältöä. DCL on yksinkertaisin SQL-alijoukoista, koska se koostuu vain kolmesta komennosta: GRANT, REVOKE ja DENY. Yhdessä nämä kolme komentoa antavat järjestelmänvalvojille joustavuuden määrittää ja poistaa tietokannan käyttöoikeuksia yksityiskohtaisesti.

Lisää käyttöoikeuksia GRANT-komennolla

GRANT-komento lisää uusia käyttöoikeuksia tietokannan käyttäjälle. Sillä on hyvin yksinkertainen syntaksi, joka määritellään seuraavasti: GRANT [privilege]
AT [object]
SIIHEN ASTI KUN [user]
[WITH GRANT OPTION]

Tässä on yhteenveto kaikista parametreista, jotka voit antaa tällä komennolla:

  • Etuoikeus — voi olla joko avainsana KAIKKI (myöntää monenlaisia ​​käyttöoikeuksia) tai tietty tietokantakäyttöoikeus tai käyttöoikeusjoukko. Esimerkkejä ovat CREATE DATABASE, SELECT, LISÄÄ, PÄIVITYS, POISTA, SUORITA ja LUO NÄKYMÄ.
  • Esine — voi olla mikä tahansa tietokantaobjekti. Kelvolliset käyttöoikeusasetukset riippuvat tähän lauseeseen sisällyttämäsi tietokantaobjektin tyypistä. Tyypillisesti objekti on tietokanta, funktio, tallennettu toimintosarja, taulukko tai näkymä.
  • Käyttäjä – voi olla mikä tahansa tietokannan käyttäjä. Voit myös korvata käyttäjän roolin tässä lauseessa, jos haluat hyödyntää roolipohjaista tietokannan suojausta.
  • Jos käytät valinnaista APUVAIHTOEHDOLLA GRANT-komennon lopussa oleva lauseke, sen lisäksi, että myönnät määritetylle käyttäjälle SQL-käskyssä määritellyt käyttöoikeudet, annat käyttäjälle myös luvan myöntää samat oikeudet edelleen muu tietokannan käyttäjiä. Siksi käytä tätä lauseketta varoen.

Oletetaan esimerkiksi, että olet käyttäjä Joe kyky hakea tietoa yhteistyökumppani taulukko tietokannassa nimeltä HR† Käytä seuraavaa SQL-komentoa: GRANT SELECT
HR.työntekijät
Joelle

Joe voi hakea tietoja työntekijöiden taulukosta. Se ei kuitenkaan voi sallia muiden käyttäjien hakea tietoja kyseisestä taulukosta, koska DCL-komentosarja ei sisältänyt WITH GRANT OPTION -lausetta.

Peruuta tietokannan käyttöoikeus

REVOKE-komento poistaa tietokannan käyttöoikeudet käyttäjältä, joka on aiemmin myöntänyt tällaisen käyttöoikeuden. Tämän komennon syntaksi on määritelty seuraavasti: REVOKE [GRANT OPTION FOR] [permission]
AT [object]
FROM [user]
[CASCADE]

Tässä on yhteenveto REVOKE-komennon parametreista:

  • Lupa — määrittää tunnistetulta käyttäjältä poistettavat tietokannan käyttöoikeudet. Komento kumoaa sekä GRANT- että DENY-vaatimukset, jotka on aiemmin tehty tunnistetun suostumuksen perusteella.
  • Esine — voi olla mikä tahansa tietokantaobjekti. Kelvolliset käyttöoikeusasetukset riippuvat tähän lauseeseen sisällyttämäsi tietokantaobjektin tyypistä. Tyypillisesti objekti on tietokanta, funktio, tallennettu toimintosarja, taulukko tai näkymä.
  • Käyttäjä – voi olla mikä tahansa tietokannan käyttäjä. Voit myös korvata käyttäjän roolin tässä lauseessa, jos haluat hyödyntää roolipohjaista tietokannan suojausta.
  • The APUVAIHTOEHTOJA lauseke poistaa määritetyn käyttäjän mahdollisuuden myöntää määritetty käyttöoikeus muille käyttäjille. Jos sinulla on APUVAIHTOEHTOJA -lause REVOKE-käskyssä, ensisijaista lupaa ei peruuteta. Tämä lauseke vain peruuttaa myöntämisvaltuuden.
  • The RYÖPYTÄ vaihtoehto myös peruuttaa määritetyn käyttöoikeuden kaikilta käyttäjiltä, ​​joille määritetty käyttäjä on myöntänyt luvan.

Seuraava komento peruuttaa Joelle edellisessä esimerkissä myönnetyn luvan: REVOKE SELECT
HR.työntekijät
Joelta

Estä nimenomaisesti pääsy tietokantaan

DENY-komento estää nimenomaisesti käyttäjää saamasta tiettyä käyttöoikeutta. Tämä ominaisuus on hyödyllinen, kun käyttäjä on sellaisen roolin tai ryhmän jäsen, jolle on myönnetty käyttöoikeus, ja haluat estää kyseistä yksittäistä käyttäjää perimästä käyttöoikeutta luomalla poikkeuksen. Tämän komennon syntaksi on seuraava: DENY [permission]
AT [object]
SIIHEN ASTI KUN [user]

DENY-komennon parametrit ovat samat kuin GRANT-komennon parametrit. Jos esimerkiksi haluat varmistaa, että Matthew ei koskaan saa mahdollisuutta poistaa tietoja työntekijätaulukosta, anna seuraava komento: DENY DELETE
HR.työntekijät
Matthew’lle

Por Markus