Язык управления данными - Data control language
Язык управления данными ( DCL ) является синтаксис похож на компьютерный язык программирования , используемый для управления доступом к данным , хранящимся в базе данных ( Authorization ). В частности, это компонент языка структурированных запросов (SQL). Язык управления данными - одна из логических групп в командах SQL. SQL - стандартный язык для систем управления реляционными базами данных. Операторы 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 Server:
Согласно серверу Microsoft SQL существует четыре группы команд SQL. (MSSQL)
- Язык манипулирования данными (DML)
- Язык определения данных (DDL)
- Язык управления данными (DCL)
- Язык управления транзакциями (TCL)
Команды DCL используются для контроля доступа и управления разрешениями для пользователей в базе данных. С их помощью мы можем легко разрешить или запретить некоторые действия для пользователей в таблицах или записях (безопасность на уровне строк).
Команды DCL:
GRANT - мы можем дать определенные разрешения для таблицы (и других объектов) для определенных пользователей базы данных,
ОТКАЗАТЬ - запрещает пользователям определенные разрешения.
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 fb: Dipa Lolman.9
Oracle разделяет команды SQL на разные типы. Они есть.
- Заявления языка определения данных (DDL)
- Заявления языка манипулирования данными (DML)
- Заявления о контроле транзакций
- Операторы управления сеансом
- Заявление о контроле системы
- Встроенные операторы SQL
Для получения подробной информации обратитесь к Oracle- TCL.
Операторы языка определения данных (DDL) позволяют выполнять следующие задачи:
- Создание, изменение и удаление объектов схемы
- Предоставление и отзыв привилегий и ролей
- Анализировать информацию о таблице, индексе или кластере
- Установить варианты аудита
- Добавить комментарии в словарь данных
Таким образом , Oracle команда DDL базы данных включают в себя Грант и Отозвать привилегии , которые фактически являются частью языка управления данными в сервере Microsoft SQL.
Синтаксис для предоставления и отзыва в Oracle:
Пример :
GRANT SELECT, INSERT, UPDATE, DELETE ON db1.Employee TO user1;
ОТМЕНИТЬ ВЫБОР, ВСТАВИТЬ, ОБНОВИТЬ, УДАЛИТЬ НА db1.Employee FROM user1;
Операторы управления транзакциями в Oracle:
Операторы управления транзакциями управляют изменениями, внесенными операторами DML. Заявления о контроле транзакции:
- СОВЕРШИТЬ
- ОТКАТ
- SAVEPOINT
- УСТАНОВИТЬ СДЕЛКУ
- УСТАНОВИТЬ ОГРАНИЧЕНИЕ
Сервер MySQL : индо
Сервер MySQL они разделяют операторы SQL на разные типы операторов
- Операторы определения данных
- Заявления о манипулировании данными
- Заявления о транзакциях и блокировках
- Заявления репликации
- Подготовленные заявления
- Синтаксис составного оператора
- Заявления об администрировании базы данных
- Заявления о коммунальных услугах
Подробнее см. Операторы транзакций MySQL )
Синтаксис предоставления и отзыва является частью инструкций по администрированию базы данных в системе управления учетными записями.
Оператор 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';
ПРЕДОСТАВИТЬ ВЫБОР В мире. * TO 'role3';
В PostgreSQL выполнение DCL является транзакционным , и его можно откатить.
Grant и Revoke - это команды SQL, используемые для управления привилегиями, предоставляемыми пользователям в базах данных.
В SQLite нет команд DCL, так как у него нет имен пользователей или учетных записей. Вместо этого SQLite зависит от разрешений файловой системы, определяющих, кто может открывать и получать доступ к базе данных.
Смотрите также
использованная литература