Реализация прав на доступ к объектам баз данных в среде MS SQL Server
При подключении к SQL Server все возможные действия пользователей определяются правами ( привилегиями, разрешениями), выданными их учетной записи, группе илироли, в которых они состоят.
Права можно разделить на три категории:
права на доступ к объектам ;
права на выполнение команд ;
неявные права.
Таблица 17.1.
Пользователь A
Пользователь B
Пользователь C
ПользовательD
Пользователь E
GRANT INSERT ON Товар TO B WITH GRANT OPTION
Получение права
GRANT INSERT ON Товар TO C WITH GRANT OPTION
Получение права от B. Получениеправа от E
GRANT INSERT ON Товар TO C WITH GRANT OPTION
GRANT INSERT ON Товар TO D
Получениеправа
REVOKE INSERT ON Товар TO B CASCADE
Отмена права
Сохранение права
Сохранениеправа
Сохранение права
Работа с данными и выполнение хранимых процедур требуют наличия класса доступа, называемого правами на доступ к объектам баз данных. Под объектами подразумеваются таблицы, столбцы таблиц, представления, хранимые процедуры.
Для различных объектов применяются разные наборы прав доступа к ним:
SELECT, INSERT, UPDATE, DELETE, REFERENCES – для таблицы или представления;
SELECT, UPDATE – для конкретного столбца таблицы или представления;
EXECUTE – для хранимых процедур и функций.
Право INSERT позволяет вставлять новые строки в таблицу или представление и выдается только на уровне таблицы или представления; оно не может быть выдано на уровне столбца.
Право UPDATE выдается либо на уровне таблицы, что позволяет изменять в ней все данные, либо на уровне отдельного столбца, что разрешает изменять данные только в его пределах.
Право DELETE позволяет удалять строки из таблицы или представления, выдается только на уровне таблицы или представления, но не может быть выдано на уровне столбца.
Право SELECT разрешает выборку данных и может выдаваться как на уровне таблицы, так и на уровне отдельного столбца.
Право REFERENCES предоставляет возможность ссылаться на указанный объект. Применительно к таблицам разрешает создавать внешние ключи, ссылающиеся на первичный ключ или уникальный столбец этой таблицы.