Jazyk řízení dat (DCL)

GRANT, REVOKE a DENY Databázová oprávnění

Jazyk řízení dat (DCL) je podmnožinou strukturovaného dotazovacího jazyka (SQL) a umožňuje správcům databází konfigurovat bezpečnostní přístup do relačních databází. Doplňuje jazyk pro definici dat (DDL), který slouží k přidávání a odstraňování databázových objektů, a jazyk pro manipulaci s daty (Data Manipulation Language - DML) používaný k načítání, vkládání a úpravě obsahu databáze.

DCL je nejjednodušší z podmnožin SQL , jelikož se skládá pouze ze tří příkazů: GRANT, REVOKE a DENY. Kombinované, tyto tři příkazy poskytují správcům možnost nastavit a odebírat oprávnění databáze extrémně zrnitým způsobem.

Přidání oprávnění pomocí příkazu GRANT

Příkaz GRANT používají správci k přidání nových oprávnění uživateli databáze . Má velmi jednoduchou syntaxi definovanou následovně:

GRANT [oprávnění] ZAPNUTO [objekt] TO [uživatele] [S GRANTOVANOU MOŽNOSTÍ]

Zde je přehled všech parametrů, které můžete dodat s tímto příkazem:

Předpokládejme například, že chcete poskytnout uživateli Joe možnost získat informace z tabulky zaměstnanců v databázi s názvem HR. Můžete použít následující příkaz SQL:

GRANT SELECT na HR.employees TO Joe

Joe nyní bude mít možnost získat informace ze stolu zaměstnanců. Nebude však moci udělit jiným uživatelům oprávnění k načtení informací z této tabulky, protože jste neobdrželi klauzuli WITH GRANT OPTION v příkazu GRANT.

Zrušení přístupu k databázi

Příkaz REVOKE se používá k odebrání přístupu k databázi od uživatele, kterému byl dříve udělen přístup. Syntaxe tohoto příkazu je definována následovně:

REVOKE [OPTION GRANT FOR] [povolení] ON [objekt] FROM [uživatel] [CASCADE]

Zde je přehled o parametrech příkazu REVOKE:

Například následující příkaz zruší oprávnění udělené Joe v předchozím příkladu:

ZRUŠIT VYBRAT NA HR.zaměstnanců FROM Joe

Výslovně zamítnutí přístupu k databázi

Příkaz DENY slouží k výslovnému zabránění tomu, aby uživatel obdržel konkrétní oprávnění. To je užitečné, pokud je uživatel členem role nebo skupiny, kterým je uděleno oprávnění, a chcete-li zabránit tomu, aby daný uživatel zdědil oprávnění vytvořením výjimky. Syntaxe tohoto příkazu je následující:

DENY [oprávnění] ON [objekt] TO [uživatele]

Parametry pro příkaz DENY jsou stejné jako parametry použité pro příkaz GRANT.

Pokud jste například chtěli zajistit, aby Matthew nikdy nedostal možnost vymazat informace z tabulky zaměstnanců, zadejte následující příkaz:

DENY VYPLNĚTE Z HR.employees TO Matthew