Език за контрол на данните (DCL)

GRANT, REVOKE и DENY бази данни

Езикът за контрол на данните (DCL) е подклас на езика за структурирани заявки (SQL) и позволява на администраторите на бази данни да конфигурират достъпа за достъп до релационни бази данни. Той допълва езика за дефиниране на данните (DDL), който се използва за добавяне и изтриване на обекти от базата данни, и Езикът за обработка на данни (DML), използван за извличане, вмъкване и модифициране на съдържанието на база данни.

DCL е най-простият от SQL подгрупите , тъй като се състои само от три команди: GRANT, REVOKE и DENY. Комбинирани, тези три команди предоставят на администраторите гъвкавостта да задават и премахват разрешения за бази данни по изключително груб начин.

Добавяне на разрешения с командата GRANT

Командата GRANT се използва от администраторите за добавяне на нови разрешения към потребител на база данни . Той има много прост синтаксис, дефиниран както следва:

GRANT [привилегия] ON [обект] TO [потребител] [С GRANT OPTION]

Тук можете да проследите всеки от параметрите, които можете да предоставите с тази команда:

Да предположим например, че искате да предоставите на потребителя Joe възможността да извлича информация от таблицата за служителите в база данни, наречена HR. Може да използвате следната SQL команда:

ГРАНТ ИЗБЕРЕТЕ ВЪРХУ HR.employees TO Джо

Джо ще има възможността да извлича информация от таблицата на служителите. Той обаче няма да може да даде на други потребители разрешение за извличане на информация от тази таблица, защото не включихте клаузата WITH GRANT OPTION в изявлението GRANT.

Отмяна на достъп до база данни

Командата REVOKE се използва за премахване на достъпа до база данни от потребител, който преди това е предоставил такъв достъп. Синтаксисът за тази команда се определя, както следва:

ОТВАРЯЙТЕ [СПОРАЗУМЕНИЕ ЗА ПОЛУЧАВАНЕ] [разрешение] ON [обект] ОТ [потребител] [CASCADE]

Ето какво е описано в параметрите за командата REVOKE:

Например следната команда отменя разрешението, дадено на Джо в предишния пример:

ОТВАРЯЙТЕ ИЗБОР НА HR.employees FROM Джо

Изрично отказване на достъп до бази данни

Командата DENY се използва, за да предотврати изрично даване на специално разрешение на потребител. Това е полезно, когато потребител е член на роля или група, на които е предоставено разрешение, и искате да предотвратите това, че отделен потребител да наследи разрешението, като създаде изключение. Синтаксисът за тази команда е, както следва:

DENY [разрешение] ON [обект] TO [потребител]

Параметрите за командата DENY са идентични с тези, използвани за командата GRANT.

Например, ако искате да се уверите, че Матю никога няма да получи възможността да изтрие информация от таблицата за служителите, дайте следната команда:

DENY DELETE НА HR.employees TO Матю