Схема доступа к данным во всех реляционных СУБД выглядит примерно одинаково и базируется на трех принципах.
1. Пользователи СУБД рассматриваются как основные действующие лица, желающие получить доступ к данным. Система управления базами данных от имени конкретного пользователя выполняет операции над БД, т.е. добавляет строки в таблицы (INSERT), удаляет строки (DELETE), обновляет данные в строках таблицы (UPDATE). Она делает это в зависимости от того, обладает ли конкретный пользователь правами на выполнение конкретных операций над конкретным объектом БД.
2. Объекты доступа — это элементы базы данных, доступом к которым можно управлять (разрешать доступ или защищать от доступа). Обычно объектами доступа являются таблицы, однако ими могут быть и другие объекты БД — формы, отчеты, прикладные программы и т.д. Конкретный пользователь обладает конкретными правами доступа к конкретному объекту.
3. Привилегии (priveleges) — это операции, которые разрешено выполнять пользователю над конкретными объектами. Например, пользователю может быть разрешено выполнение над таблицей операций SELECT (ВЫБРАТЬ) и INSERT (ВКЛЮЧИТЬ).
Таким образом, в СУБД авторизация доступа осуществляется с помощью привилегий. Установление и контроль привилегий — прерогатива администратора БД.
Привилегии устанавливаются и отменяются специальными операторами языка SQL:
- GRANT (РАЗРЕШИТЬ).
- REVOKE (ОТМЕНИТЬ).
Оператор GRANT указывает конкретного пользователя, который получает конкретные привилегии доступа к указанной таблице.
Например, оператор
GRANT SELECT, INSERT ON Bills TO bit123 устанавливает привилегии пользователю c логином bit123 на выполнение операций выбора и включения над таблицей Bills. Как видно из примера, оператор GRANT устанавливает соответствие между операциями, пользователем и объектом БД (таблицей в данном случае).
Привилегии легко установить, но легко и отменить. Отмена привилегий выполняется оператором REVOKE. Пусть, например, пользователь, имеющий логин bit123, утратил доверие администратора БД, и последний решил лишить его привилегий на включение строк в таблицу Bills. Он сделает это, выполнив оператор
REVOKE INSERT ON Bills FROM bit123.Некоторые СУБД (Oracle, Sybase) используют собственную систему паролей, в других (Ingres, Informix) идентификатор пользователя и его пароль берутся из операционной системы. Для MS SQL Server существует возможность реализации обеих политик идентификации пользователей: Windows authentication и SQL Server authentication.