Jazyk riadenia údajov (DCL)

GRANT, REVOKE a DENY Databázové povolenia

Jazyk na riadenie údajov (DCL) je podmnožinou štruktúrovaného jazyka dotazu (SQL) a umožňuje správcom databázy konfigurovať zabezpečovací prístup do relačných databáz. Dopĺňa jazyk pre definíciu údajov (DDL), ktorý sa používa na pridávanie a odstraňovanie databázových objektov a jazyk na manipuláciu s údajmi (DML) používaný na vyhľadávanie, vloženie a úpravu obsahu databázy.

DCL je najjednoduchšia podmnožina SQL , pretože pozostáva iba z troch príkazov: GRANT, REVOKE a DENY. Kombinácia týchto troch príkazov poskytuje administrátorom flexibilitu pri nastavovaní a odstraňovaní povolení databázy mimoriadne granulárnym spôsobom.

Pridanie oprávnení pomocou príkazu GRANT

Príkaz GRANT používajú správcovia na pridanie nových oprávnení používateľovi databázy . Má veľmi jednoduchú syntax definovanú nasledovne:

GRANT [privilégium] ON [objekt] TO [užívateľ] [S GRANT OPTION]

Tu je prehľad o každom z parametrov, ktoré môžete dodať s týmto príkazom:

Predpokladajme napríklad, že chcete dať používateľovi Joe možnosť získať informácie zo stola zamestnancov v databáze s názvom HR. Môžete použiť nasledujúci príkaz SQL:

GRANT SELECT na HR.employees TO Joe

Joe bude teraz mať možnosť získať informácie zo stola zamestnancov. Nebude však môcť udeliť iným používateľom povolenie na získanie informácií z tejto tabuľky, pretože ste do príkazu GRANT nezahrnuli klauzulu s možnosťou GRANT OPTION.

Zrušenie prístupu k databázam

Príkaz REVOKE sa používa na odstránenie prístupu k databáze od používateľa, ktorému bol predtým udelený takýto prístup. Syntax pre tento príkaz je definovaný nasledovne:

REVOKE [GRANT OPTION FOR] [povolenie] ON [objekt] Z [užívateľ] [CASCADE]

Tu je prehľad o parametroch príkazu REVOKE:

Napríklad nasledujúci príkaz odoberie povolenie udelené Joe v predchádzajúcom príklade:

ZRUŠIŤ VYBERTE Z HR.Zamestnancov FROM Joe

Explicitne odmietanie prístupu k databázam

Príkaz DENY slúži na explicitné zabránenie tomu, aby používateľ dostal konkrétne povolenie. Toto je užitočné, keď je používateľ členom role alebo skupiny, ktorým bolo udelené povolenie, a chcete zabrániť tomuto jednotlivému používateľovi zdvoriť povolenie vytvorením výnimky. Syntax pre tento príkaz je nasledujúci:

DENY [povolenie] ON [objekt] TO [používateľ]

Parametre príkazu DENY sú totožné s parametrami použitými pre príkaz GRANT.

Napríklad, ak ste chceli zabezpečiť, aby Matthew nikdy nedostal možnosť vymazať informácie zo stola zamestnancov, zadajte nasledujúci príkaz:

DENY DELETE na HR.employees TO Matthew