Data Control Language (DCL) andmebaasi lubade jaoks

click fraud protection

The Andmehalduse keel on struktureeritud päringukeele alamhulk. Andmebaasi administraatorid kasutavad DCL-i relatsiooniandmebaasidele juurdepääsu konfigureerimiseks. See täiendab Andmete määratlemise keel, mis lisab ja kustutab andmebaasiobjekte ning Andmetöötluskeel, mis otsib, lisab ja muudab andmebaasi sisu.

DCL on SQL-i alamhulkadest lihtsaim, kuna koosneb ainult kolmest käsust: GRANT, REVOKE ja DENY. Need kolm käsku koos annavad administraatoritele paindlikkuse andmebaasi õiguste üksikasjalikuks määramiseks ja eemaldamiseks.

Lubade lisamine käsuga GRANT

Käsk GRANT lisab andmebaasi kasutajale uued õigused. Sellel on väga lihtne süntaks, mis on määratletud järgmiselt:

GRANT [privileeg]
SEES [objekt]
TO [kasutaja]
[KOOS TOETUSE VÕIMALIKKUGA]

Siin on ülevaade kõigist parameetritest, mille saate selle käsuga esitada:

  • Privileeg — võib olla kas märksõna KÕIK (et anda palju erinevaid õigusi) või konkreetne andmebaasi luba või õiguste kogum. Näideteks on ANDMEBAASI LOOMINE, VALIMINE, LISAMINE, VÄRSKENDAMINE, KUSTUTAMINE, TÄITMINE ja VAATE LOOMINE.
  • Objekt — võib olla mis tahes andmebaasi objekt. Kehtivad õigussuvandid sõltuvad sellesse klauslisse lisatud andmebaasiobjekti tüübist. Tavaliselt on objektiks kas andmebaas, funktsioon, salvestatud protseduur, tabel või vaade.
  • Kasutaja — võib olla iga andmebaasi kasutaja. Kui soovite kasutada rollipõhist andmebaasi turvalisust, võite selles klauslis asendada ka kasutaja rolliga.
  • Kui lisate valikulise TOETUSE VÕIMALUSEGA klausel käsu GRANT lõpus, ei anna te ainult määratud kasutajale õigusi SQL-lauses määratletud, kuid andke ka kasutajale luba neid samasid edasi anda load selleks muud andmebaasi kasutajad. Seetõttu kasutage seda klauslit ettevaatlikult.

Oletagem näiteks, et soovite kasutajale luba anda Joe võimalus hankida teavet töötaja tabelis a andmebaasi helistas HR. Kasutage järgmist SQL-käsku:

ANNA VALIK
ON HR.töötajad
Joele.

Joe saab teavet töötajate tabelist hankida. Ta ei saa aga anda teistele kasutajatele luba sellest tabelist teabe toomiseks, kuna DCL-i skript ei sisaldanud klauslit WITH GRANT OPTION.

Andmebaasi juurdepääsu tühistamine

Käsk REVOKE eemaldab varem sellise juurdepääsu saanud kasutajalt juurdepääsu andmebaasile. Selle käsu süntaks on määratletud järgmiselt:

TÜHISTAGE [ANNE VALIK] [luba]
SEES [objekt]
KÄTJA ​​[kasutaja]
[KASKAAD]

Siin on käsu REVOKE parameetrite kokkuvõte:

  • Luba — määrab kindlaks määratud kasutajalt eemaldatavad andmebaasi load. Käsk tühistab tuvastatud loa kohta varem tehtud kinnitused GRANT ja DENY.
  • Objekt — võib olla mis tahes andmebaasi objekt. Kehtivad õigussuvandid sõltuvad sellesse klauslisse lisatud andmebaasiobjekti tüübist. Tavaliselt on objekt kas andmebaas, funktsioon, salvestatud protseduur, tabel või vaade.
  • Kasutaja — võib olla iga andmebaasi kasutaja. Kui soovite kasutada rollipõhist andmebaasi turvalisust, võite selles klauslis asendada ka kasutaja rolliga.
  • The TOETUSE VÕIMALUS klausel eemaldab määratud kasutaja võimaluse anda määratud luba teistele kasutajatele. Kui kaasate TOETUSE VÕIMALUS klausel REVOKE avalduses, siis esmast luba ei tühistata. See klausel tühistab ainult andmise võimaluse.
  • The KASKAAD valik tühistab ka määratud loa kõigilt kasutajatelt, kellele määratud kasutaja loa andis.

Järgmine käsk tühistab eelmises näites Joele antud loa:

REVOKE SELECT
ON HR.töötajad
Joe'lt.

Andmebaasile juurdepääsu selgesõnaline keelamine

Käsk DENY takistab selgesõnaliselt kasutajal konkreetset luba saada. See funktsioon on abiks siis, kui kasutaja on rolli või rühma liige, kellele on antud luba, ja soovite erandi loomisega takistada sellel üksikul kasutajal loa pärimist. Selle käsu süntaks on järgmine:

KEELDA [luba]
SEES [objekt]
TO [kasutaja]

Käsu DENY parameetrid on identsed käsu GRANT jaoks kasutatavatega. Näiteks kui soovite tagada, et Matthew ei saaks kunagi võimalust töötajate tabelist teavet kustutada, andke järgmine käsk:

KEELATA KUSTUTAMINE
ON HR.töötajad
Matthew'le.