Язык управления данными
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2016 г. ) |
Язык управления данными ( DCL ) — это синтаксис, аналогичный языку программирования, используемый для управления доступом к данным, хранящимся в базе данных ( авторизация ). В частности, это компонент языка структурированных запросов (SQL). Язык управления данными — это одна из логических групп команд SQL. SQL [ 1 ] является стандартным языком для систем управления реляционными базами данных. Операторы SQL используются для выполнения таких задач, как вставка данных в базу данных, удаление или обновление данных в базе данных или получение данных из базы данных.
Хотя системы баз данных используют SQL, они также имеют свои собственные дополнительные расширения, которые обычно используются только в их системе. Например, сервер Microsoft SQL использует Transact-SQL (T-SQL), который является расширением SQL. Точно так же Oracle использует PL-SQL, который является их собственным расширением только для них. Однако стандартные команды SQL, такие как «Выбрать», «Вставить», «Обновить», «Удалить», «Создать» и «Удалить», можно использовать для выполнения практически всего, что нужно сделать с базой данных.
Примеры команд DCL включают в себя:
- GRANT , чтобы позволить указанным пользователям выполнять указанные задачи.
- REVOKE, чтобы удалить доступ пользователя к объекту базы данных.
Операции, для которых привилегии могут быть предоставлены или отозваны у пользователя или роли, применяются как к языку определения данных (DDL), так и к языку манипулирования данными (DML), и могут включать CONNECT , SELECT , INSERT , UPDATE, DELETE , EXECUTE , и ИСПОЛЬЗОВАНИЕ .
Microsoft SQL-сервер
[ редактировать ]Согласно Microsoft SQL Server существует четыре группы команд SQL.
- Язык манипулирования данными (DML)
- Язык определения данных (DDL)
- Язык управления данными (DCL [ 2 ] )
- Язык управления транзакциями (TCL)
Команды DCL используются для контроля доступа и управления разрешениями пользователей в базе данных. С их помощью мы можем легко разрешить или запретить пользователям некоторые действия над таблицами или записями (безопасность на уровне строк).
Команды DCL:
- ГРАНТ
- Мы можем предоставить определенные права доступа к таблице (и другим объектам) указанным группам/пользователям базы данных.
- ОТРИЦАТЬ
- запрещает определенные разрешения группам/пользователям.
- ОТЗЫВАТЬ
- эта команда отбирает разрешения у групп/пользователей.
Например: GRANT можно использовать для предоставления пользователю привилегий на выполнение SELECT, INSERT, UPDATE и DELETE для определенной таблицы или нескольких таблиц.
Команда REVOKE используется для возврата привилегии (по умолчанию) или отзыва определенной команды, такой как UPDATE или DELETE, в зависимости от требований.
Пример
[ редактировать ]Grant SELECT,INSERT,UPDATE,DELETE on Employee To User1
Revoke INSERT On Employee To user1
Deny Update On Employee to user1
GRANT: в первом случае мы предоставили пользователю User1 привилегии на выполнение SELECT, INSERT, UPDATE и DELETE в таблице сотрудников.
REVOKE с помощью этой команды мы можем вернуть привилегию к значению по умолчанию, в этом случае мы возвращаем команду INSERT для таблицы сотрудников для пользователя User1.
DENY — это особая команда. Мы можем заключить, что у каждого пользователя есть список привилегий, которые запрещены или предоставлены, поэтому команда DENY предназначена для явного запрета вам некоторых привилегий для объектов базы данных:
База данных Oracle
[ редактировать ]База данных Oracle делит команды SQL на разные типы. Они есть.
- Операторы языка определения данных (DDL)
- Заявления языка манипулирования данными (DML)
- Заявления о контроле транзакций
- Операторы управления сеансом
- Заявление об управлении системой
- Операторы встроенного SQL
Подробную информацию см. в Oracle- [ 3 ] ТКЛ
Операторы языка определения данных (DDL) позволяют выполнять следующие задачи:
- Создание, изменение и удаление объектов схемы
- Предоставлять и отзывать привилегии и роли
- Анализ информации о таблице, индексе или кластере
- Установите параметры аудита
- Добавление комментариев в словарь данных
Таким образом, команды DDL базы данных Oracle включают в себя предоставление и отзыв привилегий, которые на самом деле являются частью языка управления данными на сервере Microsoft SQL.
Синтаксис предоставления и отзыва в базе данных Oracle:
Пример
[ редактировать ]GRANT SELECT, INSERT, UPDATE, DELETE ON db1.Employee TO user1;
REVOKE SELECT, INSERT, UPDATE, DELETE ON db1.Employee FROM user1;
Операторы управления транзакциями в Oracle
[ редактировать ]Операторы управления транзакциями управляют изменениями, внесенными операторами DML. Операторы управления транзакциями:
- СОВЕРШИТЬ
- ОТкат
- ТОЧКА СОХРАНЕНИЯ
- УСТАНОВИТЬ ТРАНЗАКЦИЮ
- УСТАНОВИТЬ ОГРАНИЧЕНИЕ
MySQL
[ редактировать ]Сервер MySQL разделяет операторы SQL на операторы разных типов.
- Заявления об определении данных
- Заявления о манипулировании данными
- Операторы транзакций и блокировки
- Операторы репликации
- Подготовленные заявления
- Синтаксис составного оператора
- Заявления по администрированию базы данных
- Заявления об утилитах
Подробности см. в разделе Транзакционные операторы MySQL. [ 4 ]
Синтаксис предоставления и отзыва является частью инструкций по администрированию базы данных в системе управления учетными записями.
Инструкция GRANT позволяет системным администраторам предоставлять привилегии и роли, которые могут быть предоставлены учетным записям пользователей и ролям. Применяются следующие синтаксические ограничения:
- GRANT не может совмещать предоставление привилегий и ролей в одном операторе. Данная инструкция GRANT должна предоставлять либо привилегии, либо роли.
- Предложение ON определяет, предоставляет ли оператор привилегии или роли:
- При включении оператор предоставляет привилегии
- Без ON оператор предоставляет роли.
- Разрешается назначать учетной записи как привилегии, так и роли, но вы должны использовать отдельные инструкции GRANT, синтаксис каждой из которых соответствует тому, что должно быть предоставлено.
Оператор REVOKE позволяет системным администраторам отзывать привилегии и роли, которые можно отозвать у учетных записей и ролей пользователей.
Примеры
[ редактировать ]REVOKE INSERT ON *.* FROM 'jeffrey'@'localhost';
REVOKE 'role1', 'role2' FROM 'user1'@'localhost', 'user2'@'localhost';
REVOKE SELECT ON world.* FROM 'role3';
GRANT ALL ON db1.* TO 'jeffrey'@'localhost';
GRANT 'role1', 'role2' TO 'user1'@'localhost', 'user2'@'localhost';
GRANT SELECT ON world.* TO 'role3';
В PostgreSQL выполнение DCL является транзакционным и его можно откатить.
Grant и Revoke — это команды SQL, используемые для управления привилегиями, предоставляемыми пользователям в базе данных.
В SQLite нет команд DCL, поскольку у него нет имен пользователей или логинов. Вместо этого SQLite зависит от разрешений файловой системы , чтобы определить, кто может открывать базу данных и получать к ней доступ. [ 5 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Стандарт SQL – ISO/IEC 9075:2016 (ANSI X3.135) – Блог ANSI» . Блог ANSI . 05.10.2018 . Проверено 19 сентября 2020 г.
- ^ «ТехНет Вики» . Social.technet.microsoft.com . Проверено 19 сентября 2020 г.
- ^ «Справочник по языку баз данных SQL» . docs.oracle.com . Проверено 19 сентября 2020 г.
- ^ «MySQL :: Справочное руководство MySQL 8.0 :: 13.7.1 Заявления об управлении учетными записями» . dev.mysql.com . Проверено 19 сентября 2020 г.
- ^ Крейбих, Дж. А., 2010. Использование SQLite , О'Рейли.