Язык управления данными - Data control language

А язык управления данными (DCL) синтаксис похож на компьютерный язык программирования используется для управления доступом к данным, хранящимся в базе данных (Авторизация ). В частности, это компонент Структурированный язык запросов (SQL). Язык управления данными - одна из логических групп в командах SQL. SQL[1] является стандартным языком для систем управления реляционными базами данных. Операторы SQL используются для выполнения таких задач, как вставка данных в базу данных, удаление или обновление данных в базе данных или получение данных из базы данных.


Хотя системы баз данных используют SQL, у них также есть свои собственные дополнительные проприетарные расширения, которые обычно используются только в их системе. Например, сервер Microsoft SQL использует Transact-SQL (T-SQL), который является расширением SQL. Точно так же Oracle использует PL-SQL, который является их проприетарным расширением только для них. Однако стандартные команды SQL, такие как «Выбрать», «Вставить», «Обновить», «Удалить», «Создать» и «Отбросить», можно использовать для выполнения почти всего, что нужно делать с базой данных.

Примеры команд DCL включают:

  • ГРАНТ чтобы разрешить указанным пользователям выполнять указанные задачи.
  • ОТЗЫВ убрать доступ пользователя к объекту базы данных.

Операции, для которых привилегии могут быть предоставлены или отозваны пользователю или роли, применяются как к Язык определения данных (DDL) и Язык манипулирования данными (DML) и может включать СОЕДИНЯТЬ, ВЫБРАТЬ, ВСТАВЛЯТЬ, ОБНОВИТЬ, УДАЛИТЬ, ВЫПОЛНЯТЬ, и ИСПОЛЬЗОВАНИЕ.

Microsoft SQL Server:

В соответствии с сервером Microsoft SQL существует четыре группы команд SQL. (MSSQL)

  • Язык манипулирования данными (DML)
  • Язык определения данных (DDL)
  • Язык управления данными (DCL[2])
  • Язык управления транзакциями (TCL)

Команды DCL используются для контроля доступа и управления разрешениями для пользователей в базе данных. С их помощью мы можем легко разрешить или запретить некоторые действия для пользователей в таблицах или записях (безопасность на уровне строк).

Команды DCL:

GRANT - мы можем дать определенные разрешения для таблицы (и других объектов) для определенных пользователей базы данных,

DENY - запрещает пользователям определенные разрешения.

REVOKE - с помощью этой команды мы можем забрать разрешение у пользователей.

Например, GRANT может использоваться для предоставления пользователю прав на выполнение SELECT, INSERT, UPDATE и DELETE для определенной таблицы или более чем одной таблицы.

С помощью команды REVOKE мы можем вернуть привилегии по умолчанию или отозвать определенную команду, такую ​​как обновление или удаление, в зависимости от требований.

Пример:

Предоставить SELECT, INSERT, UPDATE, DELETE для сотрудника пользователю User1

Отозвать INSERT для сотрудника пользователю user1

Запретить пользователю user1 обновлять информацию о сотруднике


GRANT: в первом случае мы предоставили пользователю User1 права на выполнение SELECT, INSERT, UPDATE и DELETE для таблицы с именем employee.

REVOKE с помощью этой команды мы можем вернуть привилегию по умолчанию, в этом случае мы возвращаем команду INSERT для сотрудников таблицы для пользователя User1.

DENY - это особая команда. Мы можем сделать вывод, что у каждого пользователя есть список привилегий, которые запрещены или предоставлены, поэтому команда DENY предназначена для явного запрета вам некоторых привилегий для объектов базы данных:

 

База данных ORACLE :

Oracle разделять команды SQL на разные типы. Они есть.

  • Заявления языка определения данных (DDL)
  • Заявления языка манипулирования данными (DML)
  • Заявления о контроле транзакций
  • Операторы управления сеансом
  • Заявление о контроле системы
  • Встроенные операторы SQL

Подробнее см. Oracle-[3]TCL            

Операторы языка определения данных (DDL) позволяют выполнять следующие задачи:

  • Создание, изменение и удаление объектов схемы
  • Предоставлять и отзывать привилегии и роли
  • Анализируйте информацию в таблице, индексе или кластере
  • Установить варианты аудита
  • Добавить комментарии в словарь данных

Таким образом, команды DDL базы данных Oracle включают Грант и отозвать привилегии, которые фактически являются частью языка управления данными на сервере Microsoft SQL.

Синтаксис для предоставления и отзыва в Oracle:

Пример:

GRANT SELECT, INSERT, UPDATE, DELETE ON db1.Employee TO user1;

ОТМЕНИТЬ ВЫБОР, ВСТАВИТЬ, ОБНОВИТЬ, УДАЛИТЬ НА db1.Employee FROM user1;

Операторы управления транзакциями в Oracle:

Операторы управления транзакциями управляют изменениями, внесенными операторами DML. Заявления по управлению транзакцией:

  • СОВЕРШИТЬ
  • ОТКАТ
  • SAVEPOINT
  • УСТАНОВИТЬ СДЕЛКУ
  • УСТАНОВИТЬ ОГРАНИЧЕНИЕ

Сервер MySQL:

Сервер MySQL они разделяют операторы SQL на разные типы операторов

  • Операторы определения данных
  • Заявления о манипулировании данными
  • Заявления о транзакциях и блокировках
  • Заявления репликации
  • Подготовленные заявления
  • Синтаксис составного оператора
  • Заявления об администрировании базы данных
  • Заявления о коммунальных услугах

Подробнее см. Операторы транзакций MySQL[4])

Синтаксис предоставления и отзыва является частью инструкций по администрированию базы данных в системе управления учетными записями.

Оператор GRANT позволяет системным администраторам предоставлять привилегии и роли, которые могут быть предоставлены учетным записям и ролям пользователей. Применяются следующие ограничения синтаксиса:

  • GRANT не может одновременно предоставлять права и роли в одном операторе. Данный оператор GRANT должен предоставлять либо привилегии, либо роли.
  • Предложение ON различает, предоставляет ли оператор привилегии или роли:
  • При включении оператор предоставляет привилегии
  • Без ON оператор предоставляет роли.
  • Разрешено назначать как привилегии, так и роли учетной записи, но вы должны использовать отдельные операторы GRANT, каждый с синтаксисом, соответствующим тому, что должно быть предоставлено.

Оператор REVOKE позволяет системным администраторам отменять привилегии и роли, которые можно отозвать для учетных записей и ролей пользователей.

Примеры:

ОТЗЫВАТЬ ВСТАВКУ НА *. * ОТ 'jeffrey' @ 'localhost';

ОТЗЫВАТЬ 'role1', 'role2' ОТ 'user1' @ 'localhost', 'user2' @ 'localhost';

ОТМЕНИТЬ ВЫБОР В мире. * FROM 'role3';

ПРЕДОСТАВИТЬ ВСЕ НА db1. * 'Jeffrey' @ 'localhost';

ПРЕДОСТАВИТЬ 'role1', 'role2' TO 'user1' @ 'localhost', 'user2' @ 'localhost';

GRANT SELECT ON world. * TO 'role3';


В PostgreSQL, выполнение DCL транзакционный, и его можно откатить.

Грант и Отозвать используются ли команды SQL для управления привилегиями, предоставляемыми пользователям в базах данных

SQLite не имеет команд DCL, так как не имеет имен пользователей или учетных записей. Вместо, SQLite зависит от разрешения файловой системы чтобы определить, кто может открывать и получать доступ к базе данных.[5]

Смотрите также

Рекомендации

  1. ^ «Стандарт SQL - ISO / IEC 9075: 2016 (ANSI X3.135) - Блог ANSI». Блог ANSI. 2018-10-05. Получено 2020-09-19.
  2. ^ "TechNet Wiki". social.technet.microsoft.com. Получено 2020-09-19.
  3. ^ «Справочник по языку SQL для баз данных». docs.oracle.com. Получено 2020-09-19.
  4. ^ "MySQL :: Справочное руководство MySQL 8.0 :: 13.7.1 Операторы управления учетной записью". dev.mysql.com. Получено 2020-09-19.
  5. ^ Крейбич, Дж. А., 2010. Использование SQLite, О'Рейли.