Слайд 1Управление базами данных
Система безопасности
Слайд 3Система безопасности сервера баз данных
Необходимость в системе безопасности:
Кража информации
Злонамеренное повреждение
информации
Случайное повреждение информации
Слайд 4Разграничение прав пользователей СУБД
Слайд 6Уровень сервера
Аутентификация – проверка подлинности пользователя
Имя пользователя (имя учетной записи)
– пользователь СУБД называет себя
Пароль – пользователь подтверждает, что он
тот, за кого себя выдает
Режимы аутентификации MS SQL Server:
Смешанный (mixed) – SQL Server и Windows
Только Windows
Слайд 7Учетная запись:
Имя
Пароль
Членство в группах
Каталог по умолчанию
Уникальный идентификатор (генерируется)
Уникальный идентификатор =
login identifier = login ID =
Security Identification = SID
Список прав
доступа к ресурсу = Access Control List = ACL
Средства аутентификации Windows
Слайд 8Средства аутентификации Windows
Преимущества:
Более развитая система безопасности
Не надо повторно проходить аутентификацию
Слайд 9Средства аутентификации SQL Server
Слайд 10Средства аутентификации SQL Server
Учетная запись в SQL Server:
Имя / name
Тип
/ type {Windows User | Windows Group | Standard}
Доступ к
серверу / Server Access
БД по умолчанию / Default Database
Язык по умолчанию / Default Language
Пароль / Password
При установке: SA без пароля и BUILT IN\Administrators
Слайд 11Роли сервера
Предоставление прав по администрированию сервера БД
Фиксированные роли сервера (fixed
server roles)
sysadmin – все права
setupadmin – конфигурирование хранимых процедур для
запуска
serveradmin – конфигурирование и выключение сервера
securityadmin – создание и удаление учетных записей
processadmin – управление процессами на сервере
diskadmin – управление файлами баз данных
dbocreator – создание новых БД
Слайд 12Уровень базы данных
Пользователь базы данных – административная единица системы безопасности,
через которую осуществляется доступ учетной записи к объектам данных
Слайд 13Уровень базы данных
Пользователь БД:
Имя / name
Имя учетной записи / login
name
Роль в БД / role
По умолчанию создаются пользователи БД:
Dbo –
соответствует учетная запись под которой создавалась БД. Удалить невозможно
Guest – любая учетная запись отображается в этого пользователя, если нет доступа к БД
Слайд 14Уровень базы данных
Типы ролей на уровне базы данных:
Фиксированные роли БД
/ fixed database roles
Пользовательские роли / user database roles
Роль приложения
/ application role
Слайд 15Фиксированные роли БД
Db_securityadmin – управление правами доступа к БД
Db_owner –
любые права, т.к. имеются права владельца
Db_denydatawriter – запрещение изменения данных
Db_denydatareader
– запрещение чтения данных
Db_ddladmin – создавать и управлять объектами
Db_datawrite – может изменять данные
Db_datareader – не может изменять данные
Db_backupoperator – выполнение резервного копирования
Db_accessadmin – управление пользователями БД
Роль Public – автоматически присваивается вновь созданным пользователям
Слайд 16Пользовательские роли и роль приложения
Слайд 17Порядок использования роли приложения
use lectures
select * from exemplars
print user
exec sp_setapprole
'b', 'bbbbbb1'
select * from exemplars
print user
Слайд 18Права
Разрешение (предоставление) прав – команда GRANT
Запрещение прав – команда DENY
Отклонение
прав – команда REVOKE
Минимальные права у пользователя БД после создания
– Public.
Права выдаются администратором БД, владельцем БД или владельцем объектов БД.
Набор прав определяется ролями (фиксированными или пользовательскими).
Слайд 19Предоставление прав
Категории прав:
Права доступа к объектам базы данных
Права на выполнение
команд Transact-SQL
Слайд 20Права доступа к объектам базы данных
GRANT
{ ALL | permission
[ ,...n ] }
{
[ ( column [ ,...n
] ) ] ON { table | view }
| ON { table | view } [ ( column [ ,...n ] ) ]
| ON { stored_procedure | extended_procedure }
| ON { user_defined_function }
}
TO security_account [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]
Слайд 21Права доступа к объектам базы данных
Права (permission)
ALL – предоставляются все
возможные разрения
INSERT – вставка в таблицу или представление
UPDATE – изменение
данных таблиц и представлений, а также столбца
DELETE – для таблицы и представления
SELECT – выборка из таблицы, представления, столбца
EXECUTE – разрешение запуска хранимой процедуры. Право на изменение хранимой процедуры принадлежит ее владельцу и не может быть предоставлено
Слайд 22Права доступа к объектам базы данных
security_account – пользователь БД, пользовательская
роль, пользователь Windows, группа Windows
WITH GRANT OPTION – пользователь, которому
выдаются права, тоже может предоставлять права
AS { group | role } – группа Windows или роль БД, которой выдано разрешение предоставлять разрешения и которой принадлежит пользователь, выдающий разрешение
Слайд 23Права на исполнение команд Transact-SQL
GRANT { ALL | statement [
,...n ] }
TO security_account [ ,...n ]
Значения statement
:
ALL – все права
CREATE DATABASE
CREATE DEFAULT
CREATE FUNCTION
CREATE PROCEDURE
CREATE RULE
CREATE TABLE
CREATE VIEW
BACKUP DATABASE – резервное копирование БД
BACKUP LOG – резервное копирование журнала транзакций
Слайд 24Примеры предоставления прав
-- Materials – таблица, Engineer – роль
-- Администратор
выдает разрешение
GRANT SELECT, INSERT ON Materials TO Engineer WITH GRANT
OPTION
-- Valentin – имеет роль Engineer,
-- Liss – не имеет роль Engineer.
-- Valentin выдает разрешение
GRANT SELECT, INSERT ON Materials TO Liss AS Engineer
-- Mary, John – пользователи БД,
-- [Corporate\BobJ] – член группы Windows
GRANT CREATE DATABASE, CREATE TABLE
TO Mary, John, [Corporate\BobJ]
Слайд 25Неявные права
Неявные права не требуют явного разрешения:
Права фиксированных ролей
Права, переданные
от других пользователей БД
Слайд 26Запрещение и отклонение прав
Запрещение прав – запрещение, не зависимо от
уровня, на котором выдано разрешение
Слайд 27Запрещение прав
Запрещение доступа к объектам базы данных
DENY
{ ALL [
PRIVILEGES ] | permission [ ,...n ] }
{
[
( column [ ,...n ] ) ] ON { table | view }
| ON { table | view } [ ( column [ ,...n ] ) ]
| ON { stored_procedure | extended_procedure }
| ON { user_defined_function }
}
TO security_account [ ,...n ]
[ CASCADE ]
Запрещение права выполнения команд Transact-SQL
DENY { ALL | statement [ ,...n ] }
TO security_account [ ,...n ]
CASCADE – права отнимаются еще и у других пользователей,
которым данный дал права
Слайд 28Пример запрещения
GRANT CREATE TABLE TO Petrov
WITH GRANT OPTION
-- Отнять разрешение
у пользователя и тех пользователей,
-- которым он выдал разрешение
DENY CREATE
TABLE TO Petrov
CASCADE
Слайд 29Отклонение прав
Отклонение – это запрещение, но только на том уровне,
на котором оно определено.
Слайд 30Отклонение прав
Отклонение доступа к объектам базы данных
REVOKE [ GRANT OPTION
FOR ]
{ ALL [ PRIVILEGES ] | permission [
,...n ] }
{
[ ( column [ ,...n ] ) ] ON { table | view }
| ON { table | view } [ ( column [ ,...n ] ) ]
| ON { stored_procedure | extended_procedure }
| ON { user_defined_function }
}
{ TO | FROM }
security_account [ ,...n ]
[ CASCADE ]
[ AS { group | role } ]
Отклонение права выполнения команд Transact-SQL
REVOKE { ALL | statement [ ,...n ] }
FROM security_account [ ,...n ]
Слайд 31Отклонение прав
GRANT OPTION FOR и CASCADE используются для того, чтобы
отклонить права, выданные при помощи WITH GRANT OPTION в команде
DENY
FROM – при отклонении разрешения, TO – при отклонении запрещения
Слайд 32Примеры отклонения прав
REVOKE CREATE TABLE FROM Joe, [Corporate\BobJ]
REVOKE CREATE
TABLE, CREATE DEFAULT FROM Mary, John
-- Отклонение запрещения (здесь
TO, а не FROM)
REVOKE SELECT ON Budget_Data TO Mary
Слайд 33Конфликты доступа
Предоставление доступа имеет самый низкий приоритет, а запрещение –
самый высокий