WikiDer > Язык управления данными
Было высказано предположение, что Черновик: язык управления данными быть слился в эту статью. (Обсуждать) Предлагается с сентября 2020 года. |
Эта статья нужны дополнительные цитаты для проверка. (Июль 2016) (Узнайте, как и когда удалить этот шаблон сообщения) |
А язык управления данными (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 разделять команды SQL на разные типы. Они есть.
- Заявления языка определения данных (DDL)
- Заявления языка манипулирования данными (DML)
- Заявления о контроле транзакций
- Операторы управления сеансом
- Заявление о контроле системы
- Встроенные операторы SQL
Операторы языка определения данных (DDL) позволяют выполнять следующие задачи:
- Создание, изменение и удаление объектов схемы
- Предоставлять и отзывать привилегии и роли
- Анализируйте информацию в таблице, индексе или кластере
- Установить варианты аудита
- Добавить комментарии в словарь данных
Таким образом, команды DDL базы данных Oracle включают Грант и отозвать привилегии, которые фактически являются частью языка управления данными на сервере Microsoft SQL.
Синтаксис для предоставления и отзыва в Oracle:
Пример:
GRANT SELECT, INSERT, UPDATE, DELETE ON db1.Employee TO user1;
ОТМЕНИТЬ ВЫБОР, ВСТАВИТЬ, ОБНОВИТЬ, УДАЛИТЬ НА db1.Employee FROM user1;
Операторы управления транзакциями в Oracle:
Операторы управления транзакциями управляют изменениями, внесенными операторами DML. Заявления по управлению транзакцией:
- СОВЕРШИТЬ
- ОТКАТ
- SAVEPOINT
- УСТАНОВИТЬ СДЕЛКУ
- УСТАНОВИТЬ ОГРАНИЧЕНИЕ
Сервер 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]
Смотрите также
Рекомендации
- ^ «Стандарт SQL - ISO / IEC 9075: 2016 (ANSI X3.135) - Блог ANSI». Блог ANSI. 2018-10-05. Получено 2020-09-19.
- ^ "TechNet Wiki". social.technet.microsoft.com. Получено 2020-09-19.
- ^ «Справочник по языку SQL для баз данных». docs.oracle.com. Получено 2020-09-19.
- ^ "MySQL :: Справочное руководство MySQL 8.0 :: 13.7.1 Операторы управления учетной записью". dev.mysql.com. Получено 2020-09-19.
- ^ Крейбич, Дж. А., 2010. Использование SQLite, О'Рейли.
Этот база данных-связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |
Этот язык программирования-связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |