- •Управление базами данных
- •Система безопасности сервера баз данных
- •Разграничение прав пользователей СУБД
- •Уровни безопасности
- •Уровень сервера
- •Средства аутентификации Windows
- •Средства аутентификации Windows
- •Средства аутентификации SQL
- •Средства аутентификации SQL Server
- •Роли сервера
- •Уровень базы данных
- •Уровень базы данных
- •Уровень базы данных
- •Фиксированные роли БД
- •Пользовательские роли и роль приложения
- •Порядок использования роли приложения
- •Порядок использования роли приложения
- •Права
- •Предоставление прав
- •Права доступа к объектам базы данных
- •Права доступа к объектам базы данных
- •Права доступа к объектам базы данных
- •Права на исполнение команд
- •Примеры предоставления прав
- •Неявные права
- •Запрещение и отклонение прав
- •Запрещение прав
- •Пример запрещения
- •Отклонение прав
- •Отклонение прав
- •Отклонение прав
- •Примеры отклонения прав
- •Конфликты доступа
Роли сервера
Предоставление прав по администрированию сервера БД
Фиксированные роли сервера (fixed server roles)
sysadmin – все права
setupadmin – конфигурирование хранимых процедур для запуска
serveradmin – конфигурирование и выключение сервера
securityadmin – создание и удаление учетных записей
processadmin – управление процессами на сервере
diskadmin – управление файлами баз данных
dbocreator – создание новых БД
Уровень базы данных
Пользователь базы данных – административная единица системы безопасности, через которую осуществляется доступ учетной записи к объектам данных
Уровень базы данных
Пользователь БД:
Имя / name
Имя учетной записи / login name (в дальнейшем используется SID)
Роль в БД / role
По умолчанию создаются пользователи БД:
Dbo – соответствует учетная запись под которой создавалась БД. Удалить невозможно
Guest – любая учетная запись отображается в этого пользователя, если нет доступа к БД
Уровень базы данных
Типы ролей на уровне базы данных:
Фиксированные роли БД / fixed database roles
Пользовательские роли / user database roles
Роль приложения / application role
Фиксированные роли БД
Db_securityadmin – управление правами доступа к БД
Db_owner – любые права, т.к. имеются права владельца
Db_denydatawriter – запрещение изменения данных
Db_denydatareader – запрещение чтения данных
Db_ddladmin – создавать и управлять объектами
Db_datawriter – может изменять данные
Db_datareader – не может изменять данные
Db_backupoperator – выполнение резервного копирования
Db_accessadmin – управление пользователями БД
Роль Public – автоматически присваивается вновь созданным пользователям
Пользовательские роли и роль приложения
Порядок использования роли приложения
use lectures
select * from exemplars print user
exec sp_setapprole 'b', 'bbbbbb1' select * from exemplars
print user
Порядок использования роли приложения
DECLARE @cookie varbinary(8000);
EXEC sp_setapprole 'Sales11', 'fdsd896#gfdbfdkjgh700mM' , @fCreateCookie = true, @cookie = @cookie OUTPUT;
--The application role is now active. SELECT USER_NAME();
--This will return the name of the application role, Sales11.
EXEC sp_unsetapprole @cookie;
-- The application role is no longer active. -- The original context has now been restored. GO SELECT USER_NAME(); -- This will return the name of the original user. GO
Права
Разрешение (предоставление) прав – команда GRANT
Запрещение прав – команда DENY
Отклонение прав – команда REVOKE
Минимальные права у пользователя БД после создания – Public. Права выдаются администратором БД, владельцем БД или владельцем объектов БД. 
Набор прав определяется ролями (фиксированными или пользовательскими).
Предоставление прав
Категории прав:
Права доступа к объектам базы данных
Права на выполнение команд Transact- SQL
Неявные права (роли сервера и владельца БД)
