Изучение средств идентификации, аутентификации и управления доступом в СУБД SQL Server 2005 (Лабораторная работа № 7), страница 4

Название

Права

db_owner

Любые действия (права владельца)

db_securityadmin

Управление правами доступа и членством в ролях

db_denydatawriter

Запрещение записи данных

db_denydatareader

Запрещение чтения данных

db_ddladmin

Создание, модификация и удаление объектов БД

db_datawriter

Изменение данных

db_datareader

Чтение данных

db_backupoperator

Резервное копирование БД

db_accessadmin

Управление пользователями БД

Помимо перечисленных ролей, имеется фиксированная роль public, обладающая некоторыми умалчиваемыми правами. Каждый пользователь автоматически включается в эту роль и не может быть удален оттуда.

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

Роли приложения в настоящей работе не изучаются.

2.2.2. Управление правами доступа

Все существующие в БД права доступа можно разбить на три класса, а в каждом классе – выделить свои категории доступа (табл. 4). Следует заметить, что сказанное справедливо только для так называемых явных прав доступа. В то же время, пользователь может быть наделен неявными правами через членство в фиксированных ролях сервера или БД. Например, членство в роли db_denydatawriter запрещает пользователю любые изменения данных, несмотря на то, что формально ему разрешена запись в некоторые из таблиц. Другим примером неявных прав доступа служат абсолютные права владельца (члена роли db_owner) объекта.

Таблица 4 – Классификация явных прав доступа

Класс

Категория доступа

Характеристика

Права доступа к данным

insert

Выдается на уровне таблицы или представления. Позволяет вставлять в таблицу (представление) новые строки

update

Выдается на уровне таблицы или столбца. В первом случае разрешает изменять значения в любом столбце, во втором – только в пределах конкретного столбца

delete

Позволяет удалять строки из таблицы или представления. Не может быть выдано на уровне столбца


Продолжение таблицы 4

select

Разрешает выборку данных. Выдается на уровне таблицы, представления или отдельного столбца


references

Предоставляет возможность ссылки на указанный объект. Применительно к таблицам это означает возможность создавать внешние ключи, ссылающиеся на первичный (потенциальный) ключ данной таблицы


Права на выполнение хранимых процедур

execute

Разрешает выполнение процедуры

Права на выполнение команд Transact-SQL

create database

Право на создание БД. Выдается учетной записи

create table

Право на создание таблицы

create view

Право на создание представления

create procedure

Право на создание хранимой процедуры

create function

Право на создание функции

create rule

Право на создание правила (начиная с  SQL Server 2000 практически не используется)

create default

Право на создание умолчания

backup database

Право на резервное копирование БД

backup log

Право на резервное копирование журнала транзакций

all

Все права из данного класса

Члены роли db_owner автоматически наделяются правом all и всеми правами доступа к объектам, которыми владеют.

2.2.3. Управление пользователями и правами доступа

Средства Transact-SQL

Информация о пользователях и ролях БД хранится в системной таблице sysusers. Просмотр информации о пользователях можно выполнять напрямую с помощью оператора select. Однако более удобным механизмом является процедура sp_helpuser. Одно из ее преимуществ состоит в том, что она отображает связи пользователей с учетными записями, реализуя запрос к нескольким системным таблицам из разных системных БД.