БД является ценным корпоративным ресурсом. Безвозвратная потеря данных подвергает бизнес серьезной опасности. Утраченные аппаратные ресурсы можно восстановить, а при отсутствии мер по защите и восстановлению утраченных данных восстановить их невозможно. По оценкам исследователей технологий БД, среди компаний, пострадавших от катастроф и переживших крупную необратимую потерю данных, 43 % не смогли продолжить свою деятельность.
Разрушение и потеря данных в базе могут быть вызваны рядом причин:
1) сбои оборудования;
2) физические воздействия на аппаратные средства;
3) стихийные бедствия;
4) ошибки санкционированных пользователей;
5) умышленные вредоносные действия несанкционированных пользователей или программ;
6) программные ошибки СУБД или операционной системы;
7) ошибки в прикладных программах;
8) совместное выполнение конфликтных запросов пользователей и др.
Защита БД должна решать две основные задачи:
1) обеспечение безопасности данных – защита данных от разрушения в результате преднамеренных или случайных действий пользователей и программ, сбоев аппаратуры, а также от потери данных в случае различных катастроф;
2) обеспечение секретности данных – защита от несанкционированного доступа к данным.
Большинство современных СУБД имеют специальные средства защиты БД: защита паролем, шифрование данных, разграничение прав доступа.
Главное достоинство защиты с помощью пароля – простота и привычность. Тем не менее из-за невозможности сохранения в ряде случаев паролей в тайне такой защиты оказывается недостаточно.
База данных может храниться на диске в зашифрованном виде. Шифрование – это преобразование исходных данных по специальным алгоритмам чтобы скрыть содержание исходной информации. Дешифрование – это обратный процесс.
Разграничение прав доступаиспользуется в любой многопользовательской СУБД. Администратор БД настраивает права доступа пользователей в соответствии с их служебными обязанностями. Например, в таблицах можно независимо управлять правами на чтение, добавление, удаление и изменение записей. В некоторых СУБД можно управлять доступом на уровне отдельного столбца таблицы.
Восстановление БД осуществляется в случае ее физического повреждения или нарушения целостности. Целостность БД означает, что в ней содержится полная, непротиворечивая и адекватно отражающая предметную область информация.
Основные средства восстановления БД:
1) резервное копирование БД. При этом копия создается в момент, когда состояние БД является целостным, и сохраняется на иных внешних устройствах, чем то, на котором располагается сама база.
Полная резервная копия включает всю БД, частичная – только часть БД, определенную пользователем. Периодичность резервного копирования зависит от интенсивности обновления данных, частоты выполнения запросов, объема базы данных и др.
БД ее можно восстановить по последней резервной копии путем переноса копии на рабочее устройство и повторного проведения всех изменений, зафиксированных после создания данной резервной копии и до момента возникновения сбоя.
2) журнализация изменений БД. Журнал – это особая часть БД, недоступная пользователям СУБД, в которую поступают записи обо всех изменениях основной части БД (например, добавление или удаление строки из таблицы, изменение значения в ячейке таблицы). Для повышения надежности хранения журнала создаются его копии. В большинстве современных реляционных СУБД журнал изменений называется журналом транзакций. В нем регистрируются в хронологическом порядке все изменения, вносимые в БД каждой транзакцией.
При ведении журнала транзакций восстановить базу данных можно одним из двух методов:
1) накат(раскрутка) заключается во внесении в сохраненную копию БД результатов всех завершенных транзакций. При этом транзакции не обрабатываются повторно, а производятся изменения в БД согласно записям в журнале транзакций;
2) откатотменяет изменения, произведенные в БД ошибочными или незавершенными транзакциями. Затем повторно запускаются транзакции, которые выполнялись в момент возникновения сбоя.