Реализация уровней доступа пользователей базы данных средствами языка SQL.

Понятие пользователь базы данных относится к базе (или ба­зам) данных, к которым может получить доступ отдельный поль­зователь. После успешного подключения сервер определяет, имеет ли этот пользователь разрешение на работу с базой дан­ных, к которой обращается.
Единственным исключением из этого правила является пользователь guest (гость). Особое имя пользователя guest разре­шает любому подключившемуся к SQL Server пользователю по­лучить доступ к этой базе данных. Пользователю с именем guest назначена роль public.
Права доступа
Для управления правами доступа в SQL Server используются следующие команды:

  1. GRANT. Позволяет выполнять действия с объектом или,
    для команды — выполнять ее;
  2. REVOKE. Аннулирует права доступа для объекта или, для
    команды — не позволяет выполнить ее;
  3. DENY. He разрешает выполнять действия с объектом (в то
    время, как команда REVOKE просто удаляет эти права
    доступа).

Объектные права доступа позволяют контролировать доступ к объектам в SQL Server, предоставляя и аннулируя права досту­па для таблиц, столбцов, представлений и хранимых процедур.
Чтобы выполнить по отношению к некоторому объекту некото­рое действие, пользователь должен иметь соответствующее право доступа. Например, если пользователь хочет выполнить оператор SELECT * FROM table, то он должен иметь права выполнения оператора SELECT для таблицы table.
Командные права доступа определяют тех пользователей, ко­торые могут выполнять административные действия, например, создавать или копировать базу данных. Ниже приведены ко­мандные права доступа:
CREATE DATABASE — право создания базы данных;
CREATE DEFAULT — право создания стандартного значе­ния для столбца таблицы;
CREATE PROCEDURE — право создания хранимой про­цедуры.
CREATE ROLE — право создания правила для столбца таб­лицы;
CREATE TABLE — право создания таблицы;
CREATE VIEW — право создания представления;
BACKUP DATABASE — право создания резервной копии;
BACKUP TRANSACTION — право создания резервной ко­пии журнала транзакций.

2.3. Роли

Назначение пользователю некоторой роли позволяет ему выполнять все функции, разрешенные этой ролью. По сути роли логически группируют пользователей, имеющих одинаковые права доступа.

Роли, определяемые пользователем, позволяют группировать пользователей и назначать каждой группе конкретную функцию безопасности.
Существуют два типа ролей уровня базы данных, определяе­мых пользователем:

  1. стандартная роль;
  2. роль уровня приложения.

Стандартная роль предоставляет зависящий от базы данных метод создания определяемых пользователем ролей. Самое рас­пространенное назначение стандартной роли — логически сгруппировать пользователей в соответствии с их правами доступа. Например, в приложениях выделяют несколько типов уровней безопасности, ассоциируемых с тремя категориями пользо­вателей. Опытный пользователь может выполнять в базе данных любые операции; обычный пользователь может модифицировать некоторые типы данных и обновлять данные; неквалифицирован­ному пользователю обычно запрещается модифицировать любые типы данных.
Роль уровня приложения позволяет пользователю выполнять права некоторой роли. Когда пользователь принимает роль уров­ня приложения, он берет на себя выполнение новой роли и вре­менно отказывается от всех других назначенных ему прав досту­па к конкретной базе данных. Роль уровня приложения имеет смысл применять в среде, где пользователи делают запросы и модифицируют данные с помощью клиентского приложения.