Имеется две команды SQL, посредством которых назначаются и отменяются привилегии и тем самым предоставляется возможность управления доступом к данным. С помощью этих команд (они перечислены ниже) в реляционных базах данных распределяются как привилегии доступа к системе, так и привилегии доступа к данным.
В DCL входят такие важные операторы, как GRANT и REVOKE. Данные операторы контролируют то, какие привилегии имеет пользователь в базе данных, например выбор строк, обновление таблиц, удаление данных, изменение структуры таблиц и т.д.
Привилегиями, или правами, называются действия, которые пользователь имеет право выполнять в отношении данной таблицы базы данных или представления. В стандарте SQL определяется следующий набор привилегий:
- SELECT - право выбирать данные из таблицы;
- INSERT - право вставлять в таблицу новые строки;
- UPDATE - право изменять данные в таблице;
- DELETE - право удалять строки из таблицы;
- REFERENCES - право ссылаться на столбцы указанной таблицы в описаниях требований поддержки целостности данных;
- USAGE - право использовать домены, проверки и наборы символов.
Оператор GRANT применяется для предоставления привилегий в отношении поименованных объектов базы данных указанным пользователям. Обычно его использует владелец таблицы с целью предоставления доступа к ней другим пользователям. Оператор GRANT имеет следующий формат:
<предоставление_привилегий>::=
GRANT {<привилегия>[,...n] |
ALL PRIVILEGES}
ON имя_объекта
TO {<идентификатор_пользователя>
[,...n]| PUBLIC}
[ WITH GRANT OPTION]
Отмена предоставленных пользователям привилегий
В языке SQL для отмены привилегий, предоставленных пользователям посредством оператора GRANT, используется оператор REVOKE. С помощью этого оператора могут быть отменены все или некоторые из привилегий, полученных указанным пользователем раньше. Оператор REVOKE имеет следующий формат:
<отмена_привилегий>::=
REVOKE[GRANT OPTION FOR]
{<привилегия>[,...n]
| ALL PRIVILEGES}
ON имя_объекта
FROM {<идентификатор_пользователя>
[,...n]| PUBLIC}
[RESTRICT | CASCADE]
Ключевое слово ALL PRIVILEGES означает, что для указанного пользователя отменяются все привилегии, предоставленные ему ранее тем пользователем, который ввел данный оператор.
д). Реализация прав на доступ к объектам баз данных в среде MS SQL Server
При подключении к SQL Server все возможные действия пользователей определяются правами (привилегиями, разрешениями), выданными их учетной записи, группе или роли, в которых они состоят.
Права можно разделить на три категории:
- права на доступ к объектам;
- права на выполнение команд;
- неявные права.
Для различных объектов базы данных (таблицы, столбцы таблиц, представления, хранимые процедуры) применяются разные наборы прав доступа к ним:
- SELECT, INSERT, UPDATE, DELETE, REFERENCES - для таблицы или представления;
- SELECT, UPDATE - для конкретного столбца таблицы или представления;
- EXECUTE - для хранимых процедур и функций.
|