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

Набор инструкций, управляющих доступом к базе данных

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

Хотя системы баз данных используют SQL, они также имеют свои собственные дополнительные фирменные расширения, которые обычно используются только в их системе. Например, сервер Microsoft SQL использует Transact-SQL (T-SQL), который является расширением SQL. Аналогично Oracle использует PL-SQL, который является их фирменным расширением только для них. Однако стандартные команды SQL, такие как «Select», «Insert», «Update», «Delete», «Create» и «Drop», можно использовать для выполнения практически всего, что нужно сделать с базой данных.

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

  • GRANT , чтобы разрешить указанным пользователям выполнять указанные задачи.
  • REVOKE для отмены доступа пользователя к объекту базы данных .

Операции, для которых пользователю или роли могут быть предоставлены или отозваны привилегии, применяются как к языку определения данных (DDL), так и к языку манипулирования данными (DML) и могут включать в себя CONNECT, SELECT , INSERT , UPDATE, DELETE , EXECUTE и USAGE.

Microsoft SQL-сервер

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

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

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

Команды DCL:

ГРАНТ
Мы можем предоставить определенные разрешения для таблицы (и других объектов) определенным группам/пользователям базы данных.
ОТРИЦАТЬ
запрещает определенные разрешения для групп/пользователей.
ОТЗЫВАТЬ
эта команда отменяет разрешения у групп/пользователей.

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

Команда REVOKE используется для возврата привилегии (по умолчанию) или отмены определенной команды, например UPDATE или DELETE, в зависимости от требований.

Пример

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

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

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

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

База данных Oracle

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

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

Подробности см. в Oracle- [3] ​​TCL.         

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

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

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

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

Пример

GRANT SELECT , INSERT , UPDATE , DELETE ON db1 . Сотрудник для user1 ;        ОТМЕНИТЬ ВЫБОР , ВСТАВКУ , ОБНОВЛЕНИЕ , УДАЛЕНИЕ В db1 . Сотрудник ОТ user1 ;        

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

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

  • СОВЕРШИТЬ
  • ОТКАТ
  • ТОЧКА СОХРАНЕНИЯ
  • УСТАНОВИТЬ ТРАНЗАКЦИЮ
  • УСТАНОВИТЬ ОГРАНИЧЕНИЕ

MySQL

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

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

Подробную информацию см. в разделе MySQL Transactional statements [4]

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

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

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

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

Примеры

ОТМЕНИТЬ ВСТАВКУ В * . * ОТ 'jeffrey' @'localhost' ;     ОТОЗВАТЬ 'role1' , 'role2' ОТ 'user1' @'localhost' , 'user2' @'localhost' ;     ОТМЕНИТЬ ВЫБОР В мире . * ОТ 'role3' ;     ПРЕДОСТАВИТЬ ВСЕ НА db1 . * ДЛЯ 'jeffrey' @'localhost' ;     ПРЕДОСТАВИТЬ 'role1' , 'role2' ДЛЯ 'user1' @'localhost' , 'user2' @'localhost' ;     GRANT SELECT ON world . * TO 'role3' ;     

В PostgreSQL выполнение DCL является транзакционным и может быть откачено.

Grant и Revoke — это команды 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 . Получено 19.09.2020 .
  4. ^ "MySQL :: MySQL 8.0 Reference Manual :: 13.7.1 Account Management Statements". dev.mysql.com . Получено 2020-09-19 .
  5. ^ Крейбих, JA, 2010. Использование SQLite, O'Reilly.
Получено с "https://en.wikipedia.org/w/index.php?title=Data_control_language&oldid=1261383040"