Вопрос 22: Система безопасности. Серверные роли. Роли БД.
Система безопасности
Процедуры для получения доступа к защищенному объекту:
- Идентификация - выполняется присвоение объекту идентификатора (login) и пароля (password);
- Аутентификация - процесс установления взаимно-однозначного соответствия между объектами безопасности и вводимым идентификатором;
- Авторизация - процедура обеспечения субъекту доступа к элементам (ресурсам) системы. Доступ регулируется разрешениями (permissions).
Участником безопасности является любой пользователь, прошедший проверку подлинности, которому может быть предоставлено разрешение на доступ к объекту в системе БД. Участники безопасности существуют на трех уровнях:
- Microsoft Windows;
- SQL Server;
- База данных.
Разрешения - правила, которые управляют уровнем доступа участников к защищенным объектам. В Windows используются списки управления доступ (Access Control List) для определения участников Windows, у которых есть доступ к защищенным объектам Windows. SQL Server определяет собственные наборы разрешений, которые можно применить по отношению к защещиенным объектам SQL Server. Администратор БД может предоставлять, запрещать иди отклонять доступ к защищаемы объектам SQL Server для участников системы безопасности. Управлять разрешениями можно, выполнив инструкции GRANT, RECOKE или DENY.
Серверные роли
Роли позволяют объединять пользователей в отдельные единицы, к которым могут быть применены разрешения. SQL Server обеспечивает зараннее определенные серверные роли для общих административных функций. Фиксированные серверные роли обеспечивают группирование административных привелегий на уровне сервере.
Список фиксированных серверных ролей
Роль | Описание |
---|---|
sysadmin | Выполняет любые действия в системе баз данных |
serveradmin | Конфигурирует параметры сервера |
setupadmin | Устанавливает репликацию и управляет расширенными процедурами |
securityadmin | Управляет регистрационными именами и разрешениями для инструкции CREATE DATABASE и чтением журналов логов |
processadmin | Управляет системными процессами |
dbcreator | Создает и модифицирует базы данных |
diskadmin | Управляет файлами на диске |
Кроме фиксированных ролей сервера каждый экземпляр SQL Server содержит специальную фиксированную роль сервера public, членами которой являются все имена входа.
Для добавления и удаления членов в фиксированные серверные роли используются инструкции языка Transact-SQL CREATE SERVER ROLE и DROP SERVER ROLE соответственно. А для изменения членства в серверной роли используется инструкция ALTER SERVER ROLE.
Фиксированные серверные роли нельзя добавлять, удалять или переименовывать. Кроме этого, только члены фиксированных серверных ролей могут выполнять системные процедуры для добавления или удаления регистрационного имени в роли.
Роли БД
Типы ролей на уровне БД:
Фиксированные роли БД Представляют собой объединение администрированных привелегий на уровне БД, которым были предоставлены разрешения на стандартные задачи БД.
Список фиксированных ролей:
Роль | Описание |
---|---|
db_owner | Пользователи, которые могут выполнять почти все действия в базе данных |
db_accessadmin | Пользователи, которые могут добавлять и удалять пользователей |
db_datareader | Пользователи, которые могут просматривать данные во всех таблицах пользователей базы данных |
db_datawriter | Пользователи, которые могут добавлять, изменять или удалять данные во всех пользовательских таблицах базы данных |
db_ddladmin | Пользователи, которые могут выполнять инструкции DDL в базе данных |
db_securityadmin | Пользователи, которые могут управлять всеми действиями в базе данных, связанными разрешениями безопасности |
db_backupoperator | Пользователи, которые могут выполнять резервное копирование базы данных |
db_denydatareader | Пользователи, которые не могут просматривать любые данные в базе данных |
db_denydatawriter | Пользователи, которые не могут изменять никакие данные в базе данных |
Кроме перечисленных в таблице фиксированных ролей базы данных, существует специальная фиксированная роль базы данных public, к которой принадлежат все пользователи и которая не может быть удалена. Роль public:
- Обеспечивает все разрешения по умолчанию для пользователей в БД;
- Определяется в каждой БД, включая системные БД master, msdb, tempdb, model.
Роли БД, определенные пользователями Создание определенной пользователем роли БД даёт возможность создать группу пользователей с набором общих разрешений. Пользователя можно создать с помощью инструкции CREATE USER:
CREATE USER Vasya FOR LOGIN Vasya;
Создание роли:
CREATE ROLE auditors
Изменить или удалить роль БД, определенную пользователем, можно с помощью команд ALTER ROLE и DROP ROLE соответственно.