
Лекции 2011
.pdf
Безопасность баз данных
2.2
Контроль доступа (Access Control)
Информационная система предназначена для работы различных категорий пользователей (от операторов ввода данных до генерального директора).
Каждая категория пользователей имеет определенный уровень доступа к информации.
Создание пользователей(users) и ролей(roles) в терминологии СУБД позволяет разграничить доступ к данным.
Разграничение доступа ведется на уровне выдачи привилегий на выполнение CRUD операций (Create Read Update Delete) для каждого объектов БД (таблицы, схемы, процедуры и т.д.)

Безопасность баз данных
2.3
Аутентификация (Autentification)
Пользователи клиентского ПО должны быть сопоставлены с зарегистрированными пользователями БД и ролями.
Логин и пароль как средства подтверждения факта, что текущий клиент действительно является зарегистрированными пользователем БД.
Хранение паролей, даже в зашифрованном виде является плохой практикой. Вместо пароля хранится хеш пароля.
Хеш — односторонняя функция, не позволяющая восстановить значение аргумента по результату работы.
(MD5, SHA-2, ГОСТ Р 31.11-94)

Безопасность баз данных
2.4
Шифрование (Encryption)
Контроль доступа отвечает только за доступ через стандартные средства СУБД (SQL запросы).
Данные физически хранятся в файле доступ к которому регламентируется средствами ОС и лежит вне области контроля СУБД.
(Уязвимости несанкционированного чтения и модификации данных)
Шифрование физического представления данных позволяет частично снизить зависимость от защищенности ОС.
Шифрование не должно использоваться как средство контроля доступа.
Основные алгоритмы: 3DES, AES и их вариации. Возможно использование как симметричных, так и ассиметричных протоколов

Безопасность баз данных
2.5
Аудит (Auditing)
Человек, - самое уязвимое звено любой системы безопасности
Администратор базы данных (Database Administrator, DBA), - человек с очень высоким уровнем доступа к базе данных.
Максимально возможный доступ к БД является необходимым для работы администратора, однако сильно снижает защищенность системы
Подсистема аудита фиксирует действия всех пользователей и является средством с доступом только на чтение для администратора БД.

Надежность баз данных
6.1
Ситуации, требующие восстановления БД
Название
Откат транзакции
Мягкий сбой
Жесткий сбой
Описание
ROLLBACK, ошибка выполнения,
взаимоблокировка
Потеря данных из оперативной памяти
Потеря данных из внешней памяти

Надежность баз данных
6.2
Буферизация данных

Надежность баз данных
6.3
Свойство долговечености транзакций
Основные средства реализации свойства долговечности
транзакция:
Физическое согласование буферов в ОП и внешней памяти
(Checkpointing)
Ведение журнала транзакций (Transaction Log)

Надежность баз данных
6.4
Журнал транзакций
Каждое действие, модифицирующее БД, описано в журнале транзакций с указанием аргументов.
INSERT: что вставлено.
UPDATE: что было до изменения, что стало после изменения
DELETE: что было удалено.

Надежность баз данных
6.5
Буферизация данных и журнала транзакций

Надежность баз данных
6.6
Журнал транзакций
Рассмотрим одну из стратегий работы с журналом (REDO Log)
Для поддержания свойства долговечности транзакций чаще всего используется принцип WAL (Write-Ahead-Log): Фиксация операции в журнале транзакций идет до фиксации операции в БД.
Выталкивание страниц буфера журнала транзакций ведется после успешного окончания транзакции.
Действия транзакции хранятся в виде списка.