
- •Базы данных
- •Раздел 5. Средства разработки приложений. Защита баз данных (Лекции 15÷16)
- •Задачи администратора базы данных
- •Пример. Обязанности администратора базы данных oracle
- •Защита данных
- •Идентификация и проверка подлинности пользователей
- •Управление доступом
- •Поддержание целостности данных в субд
- •Средства поддержания высокой готовности
- •Тиражирование данных
- •Угрозы, специфичные для субд
- •Подходы к управлению производительностью субд
- •Обработка запросов
- •Эффективные алгоритмы выполнения запросов
Пример. Обязанности администратора базы данных oracle
В любой базе данных ORACLE должен быть хотя бы один человек, выполняющий обязанности администратора базы данных; если база данных большая, эти обязанности могут быть распределены между несколькими администраторами.
В обязанности администратора могут входить:
инсталляция и обновление версий сервера ORACLE и прикладных инструментов
распределение дисковой памяти и планирование будущих требований системы к памяти
создание первичных структур памяти в базе данных (табличных пространств) по мере проектирования приложений разработчиками приложений
создание первичных объектов (таблиц, представлений, индексов) по мере проектирования приложений разработчиками
модификация структуры базы данных в соответствии с потребностями приложений
зачисление пользователей и поддержание защиты системы
соблюдение лицензионного соглашения ORACLE
управление и отслеживание доступа пользователей к базе данных
отслеживание и оптимизация производительности базы данных
планирование резервного копирования и восстановления
поддержание архивных данных на устройствах хранения информации
осуществление резервного копирования и восстановления
обращение в корпорацию Oracle за техническим сопровождением
Сотрудники службы безопасности
В некоторых случаях база данных должна также иметь одного или нескольких сотрудников службы безопасности. СОТРУДНИК СЛУЖБЫ БЕЗОПАСНОСТИ главным образом отвечает за регистрацию новых пользователей, управление и отслеживание доступа пользователей к базе данных, и защиту базы данных.
Разработчики приложений
В обязанности разработчика приложений входит:
проектирование и разработка приложений базы данных
проектирование структуры базы данных в соответствии с требованиями приложений
оценка требований памяти для приложения
формулирование модификаций структуры базы данных для приложения
передача вышеупомянутой информации администратору базы данных
настройка приложения в процессе его разработки
установка мер по защите приложения в процессе его разработки
ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТИ БАЗ ДАННЫХ. РЕЗЕРВИРОВАНИЕ И ВОССТАНОВЛЕНИЕ БАЗ ДАННЫХ
Защита данных
Реляционные СУБД стали доминирующим инструментом хранения больших массивов информации. Сколько-нибудь развитые информационные приложения полагаются не на файловые структуры операционных систем, а на многопользовательские СУБД, выполненные в технологии клиент-сервер. В этой связи обеспечение информационной безопасности СУБД, и в первую очередь их серверных компонентов, приобретает решающее значение для безопасности организации в целом.
Для СУБД важны все три основных аспекта информационной безопасности – конфиденциальность, целостность и доступность. Общая идея защиты баз данных состоит в следовании рекомендациям, сформулированным для так называемого класса безопасности C2 в «Критериях оценки надежных компьютерных систем».
Данные следует защищать от несанкционированного доступа, а также от потери информации во время сбоев. Задачу по защите данных нужно включить в план проекта АИС и сделать одним из основных критериев приемки создаваемой системы.
Архивация – хранение информации без немедленного доступа, но допускающей их выборку.
Архивация может означать:
полное уничтожение устаревших данных;
сохранение с возможностью последующего доступа;
сохранение возможности полного доступа, но перевод их в неизменяемое состояние.
Рекомендуется создавать архивную копию в текстовом формате, причем формат архивной копии должен быть подробно описан в рамках проекта. Кроме этого нужно предусмотреть программу по восстановлению информации из архива в таблицы и ее тестирование после восстановления. При архивации следует учитывать:
выполнять архивацию нужно по сущностям, а не по таблицам, т.е., если одной сущности соответствует две таблицы, то их следует архивировать в одной операции;
нужно учитывать влияние ссылочной целостности; необходимо определять архивные группы связанных таблиц.
Аудит – позволяет определить: кто, что делал в системе и имел ли он право на эти действия. Технология аудита подразумевает ведение журнала, куда записываются все выполняемые действия.
Безопасность – доступ к системе и доступ к каждой таблице.
При входе в систему должно запрашиваться имя пользователя и его пароль. Безопасность обеспечивает создание роли. Доступ к совокупности объектов предоставляется роли, а затем право на использование этой роли предоставляется соответствующим лицам. С помощью команды GRANT можно предоставить пользователю право выполнять над объектами БД операции SELECT, INSERT, UPDATE, DELETE.
Блокировка – осуществляется для предотвращения случайной потери данных или нарушения их целостности. Стандартная стратегия блокировки почти всегда дает нужный результат. Для обеспечения нормальной производительности нужно помнить два правила: блокировать мало и блокировать позже.
Рекомендуется устанавливать блокировку в последний момент, а затем проверить: не изменилась ли строка с момента ее выборки до момента блокировки. Сделать это можно следующим образом: добавить столбец, в котором фиксировать изменения. При вводе новой строки установить его значение в ноль, а затем увеличивать его при каждом изменении. В момент выборки запомнить его значение, а в момент блокировки проверять изменилось ли оно, например выбором строки с признаком = значению признака в момент первоначального выбора. Если строка выбрана, то она с момента предыдущего выбора не изменилась.
Рано или поздно приходится сталкиваться с взаимоблокировкой. Решение этой проблемы полностью лежит на разработчике. Единственно возможное действие – выполнить откат и повторить попытку.