Автор работы: Пользователь скрыл имя, 14 Марта 2012 в 10:19, доклад
Системы управления базами данных, в особенности реляционные СУБД, стали доминирующим инструментом хранения больших массивов информации. Сколько-нибудь развитые информационные приложения полагаются не на файловые структуры операционных систем, а на многопользовательские СУБД, выполненные в технологии клиент/сервер. В этой связи обеспечение информационной безопасности СУБД, и в первую очередь их серверных компонентов, приобретает решающее значение для безопасности организации в целом.
Для СУБД важны все три основных аспекта информационной безопасности - конфиденциальность, целостность и доступность.
3.7. Метки безопасности
и принудительный контроль
Выше были описаны средства
произвольного управления доступом,
характерные для уровня безопасности
C. Они в принципе достаточны для подавляющего
большинства коммерческих приложений.
Тем не менее, они не решают одной весьма
важной задачи - задачи слежения за передачей
информации. Средства произвольного управления
доступом не могут помешать авторизованному
пользователю законным образом получить
секретную информацию и затем сделать
ее доступной для других, неавторизованных
пользователей. Нетрудно понять, почему
это так. При произвольном управлении
доступом привилегии существуют отдельно
от данных (в случае реляционных СУБД -
отдельно от строк реляционных таблиц).
В результате данные оказываются "обезличенными",
и ничто не мешает передать их кому угодно
даже средствами самой СУБД.
В "Критериях оценки надежных компьютерных
систем", применительно к системам уровня
безопасности B, описан механизм меток
безопасности, реализованный в версии
INGRES/Enhanced Security (INGRES с повышенной безопасностью).
Применять эту версию на практике имеет
смысл только в сочетании с операционной
системой и другими программными компонентами
того же уровня безопасности. В СУБД INGRES/Enhanced
Security к каждой реляционной таблице неявно
добавляется столбец, содержащий метки
безопасности строк таблицы. Метка безопасности
состоит из трех компонентов:
Каждый пользователь СУБД
INGRES/Enhanced Security характеризуется степенью
благонадежности, которая также
определяется меткой безопасности, присвоенной
данному пользователю. Пользователь
может получить доступ к данным,
если степень его благонадежности
удовлетворяет требованиям
Специальная привилегия, DOWNGRADE,
позволяет изменять метки безопасности,
ассоциированные с данными. Подобная
возможность необходима, например,
для коррекции меток, по тем или
иным причинам оказавшихся неправильными.
Представляется естественным, что СУБД
INGRES/Enhanced Security допускает не только скрытое,
но и явное включение меток безопасности
в реляционные таблицы. Появился новый
тип данных, security label, поддерживающий соответствующие
операции сравнения.
INGRES/Enhanced Security - первая СУБД, получившая
сертификат, эквивалентный аттестации
на класс безопасности B1. Вероятно, метки
безопасности постепенно войдут в стандартный
репертуар систем управления базами данных.
4. Поддержание целостности данных в СУБД
Для коммерческих организаций
обеспечение целостности данных
по крайней мере не менее важно, чем
обеспечение
Известно, что главными врагами баз данных
являются не внешние злоумышленники, а
ошибки оборудования, администраторов,
прикладных программ и пользователей.
Защита от подобных ошибок - главная тема
этого раздела.
С точки зрения пользователя СУБД, основными
средствами поддержания целостности данных
являются ограничения и правила.
4.1. Ограничения
Ограничения могут относиться
к таблицам или отдельным столбцам.
Ограничения на столбцы задаются
при создании таблицы, в операторах
CREATE TABLE
Табличные ограничения относятся к группе
столбцов и могут задаваться как при создании
таблицы, так и позже, посредством оператора
ALTER TABLE.
Следующий пример содержит именованное
ограничение, связывающее значения в двух
столбцах:
CREATE TABLE dept (
dname char(10),
budget money,
expenses money,
CONSTRAINT check_amount CHECK (budget > 0 and expenses <= budget)
);
{Бюджет должен быть положительным, а расходы
не должны выходить за рамки бюджета}
Ссылочные ограничения отвечают
за целостность связей между таблицами.
Подобное ограничение требует, чтобы
каждому значению в столбце или
группе столбцов одной таблицы соответствовало
ровно одно значение в другой таблице.
Название ограничения объясняется
тем, что такие значения играют роль
ссылок между таблицами в реляционной
модели.
Приведем пример ссылочного ограничения:
CREATE TABLE emp (
ename char(10),
edept char(10) references dept(dname)
);
{Ни один работник не должен числиться
в неизвестном отделе}
Ограничения всех видов накладываются
владельцем таблицы и влияют на исход
последующих операций с данными.
Перед завершением выполнения SQL-оператора
производится проверка имеющихся ограничений.
При обнаружении нарушений СУБД
сигнализирует о ненормальном завершении
и аннулирует внесенные оператором
изменения.
Отметим, что для наложения ссылочного
ограничения необходимо обладать привилегией
REFERENCES по отношению к таблице, на которую
делается ссылка (dept в примере выше).
Ограничения можно не только накладывать,
но и отменять. При этом между ограничениями
могут существовать зависимости, и отмена
одного из них может потребовать ликвидации
других (ссылочных) ограничений, зависящих
от первоначального.
При массовом копировании данных контроль ограничений отключается. Это значит, что необходимо дополнять копирование запуском процедуры глобальной проверки целостности.
4.2. Правила
Правила позволяют вызывать
выполнение заданных действий при определенных
изменениях базы данных. Обычно действие
- это вызов процедуры. Правила
ассоциируются с таблицами и
срабатывают при изменении этих
таблиц.
В отличие от ограничений, которые являются
лишь средством контроля относительно
простых условий, правила позволяют проверять
и поддерживать сколь угодно сложные соотношения
между элементами данных в базе.
Как и в случае ограничений, проверка правил
отключается при массовых операциях копирования.
СУБД обеспечивает автоматическое
удаление правил в тех случаях, когда
удаляется соответствующая
В контексте информационной безопасности
важно отметить, что создать правило, ассоциируемое
с таблицей, может владелец этой таблицы,
имеющий право на выполнение соответствующей
процедуры. Пользователь, действия которого
вызывают срабатывание правила, должен
обладать лишь необходимыми правами доступа
к таблице. Тем самым правила неявно расширяют
привилегии пользователей. Подобные расширения
нуждаются в строгом административном
контроле.
5. Средства поддержания высокой готовности
В коммерческих приложениях
высокая готовность аппаратно-программных
комплексов является важнейшим фактором.
Применительно к СУБД средства поддержания
высокой готовности должны обеспечивать
нейтрализацию аппаратных отказов,
особенно касающихся дисков, а также
восстановление после ошибок обслуживающего
персонала или прикладных программ.
Подобные средства должны с самого начала
закладываться в архитектуру комплекса.
Например, необходимо использовать тот
или иной вид избыточных дисковых массивов.
Конечно, это сделает аппаратно-программное
решение более дорогим, но зато убережет
от возможных убытков во время эксплуатации.
5.1. Кластерная организация сервера баз данных
Мы будем понимать под
кластером конфигурацию из нескольких
компьютеров (узлов), выполняющих общее
приложение (такое, например, как сервер
баз данных). Обычно кластер содержит
также несколько дисковых подсистем,
совместно используемых узлами-компьютерами,
и избыточные связи между компонентами.
С внешней точки зрения кластер
выглядит как единое целое, а наличие
нескольких узлов способствует повышению
производительности и устойчивости
к отказам.
В настоящем разделе будет рассмотрена
разработка компании Sun Microsystems, Inc - SPARCcluster
PDB Server (параллельный сервер баз данных
на основе SPARC-кластера).
В минимальной конфигурации SPARCcluster
PDB Server состоит из двух узлов SPARCserver
1000, двух дисковых подсистем SPARCstorage Array
и консоли кластера (SPARCclassic). Узлы-
компьютеры соединяются между собой
посредством быстрого Ethernet (100 Мбит/с),
дисковые подсистемы подключаются через
оптоволоконные каналы. В более мощной
конфигурации вместо SPARCserver 1000 может
использоваться SPARCcenter 2000, а число
дисковых подсистем способно достигать
32 (до 1 Тб дискового пространства). Каждый
узел кластера - это многопроцессорный
компьютер, к которому, помимо прочих,
подключены накопители на DAT-лентах (или
автозагрузчики кассет с такими лентами).
Все связи с компьютерами и
дисковыми подсистемами продублированы.
Следующий рисунок поясняет аппаратную
организацию SPARCcluster PDB Server.
Рис. 1. Аппаратная организация SPARCcluster PDB Server (на рисунке не показаны связи кластера с внешним миром)
Подобная аппаратная архитектура
обеспечивает устойчивость к отказам
(никакой одиночный отказ не вызывает
остановки работы кластера в целом).
В то же время избыточные компоненты
(компьютеры, дисковые подсистемы) отнюдь
не ограничиваются ролью горячего резерва
- они полностью задействованы
в процессе обычной работы.
Вся аппаратура устроена так, что допускает
замену в горячем режиме, без остановки
других компонентов кластера.
5.1.2. Программная
организация SPARCcluster PDB Server
Если рассматривать программную организацию
SPARCcluster PDB Server в контексте надежной работы
баз данных, необходимо обратить внимание
еще на один компонент - фронтальную машину,
на которой выполняется какой-либо монитор
транзакций, например, TUXEDO. С учетом этого
дополнения программная организация приобретает
следующий вид.
Рассмотрим компоненты программного обеспечения
SPARCcluster PDB Server.
Устойчивый к отказам распределенный
менеджер блокировок (Fault Tolerant Distributed Lock
Manager, FT-DLM) управляет параллельным доступом
к базам данных, устанавливая и снимая
блокировки. Кроме того, FT-DLM нейтрализует
последствия отказов, снимая блокировки,
установленные вышедшим из строя узлом.
FT-DLM взаимодействует с сервером Oracle для
поддержки неблокируемых операций чтения
и для блокировки на уровне строк при записи
в таблицы. В результате обеспечивается
целостность и сериализация транзакций
в сочетании с параллельной работой узлов
кластера и с параллельным доступом к
нескольким дисковым подсистемам.
Рис. 2. Программная организация SPARCcluster PDB Server (узлы кластера работают под управлением ОС Solaris версии 2.4 или выше)
Распределенность менеджера
блокировок означает, что на каждом
узле кластера работает свой экземпляр
FT-DLM и что FT-DLM умеет динамически
реконфигурировать себя (как при
выходе узлов из строя, так и при
добавлении новых узлов). В результате
выход из строя одного узла не означает
краха всего сервера баз данных
- сервер жив, пока работает хотя бы один
менеджер блокировок.
В рассматриваемом контексте основное
назначение распределенного менеджера
томов - поддержка зеркалирования дисков
с тем важным дополнением, что устройства,
составляющие пару, могут принадлежать
разным дисковым подсистемам.
Подсистема обнаружения и нейтрализации
отказов постоянно отслеживает доступность
ресурсов, составляющих кластер. При обнаружении
неисправности запускается процесс реконфигурации,
изолирующий вышедший из строя компонент
при сохранении работоспособности кластера
в целом (с выходом из строя диска справляется
менеджер томов).
Подсистема управления кластером состоит
из трех инструментов с графическим интерфейсом:
консоли кластера, менеджера томов и менеджера
сервера Oracle. Их интеграция обеспечивает
централизованное оперативное управление
всеми ресурсами кластера.
5.1.3. Нейтрализация
отказа узла
Рассмотрим, как в SPARCcluster PDB Server реализована
нейтрализация самого неприятного из
отказов - отказа узла. Программное обеспечение
предпринимает при этом следующие действия:
В этот период транзакции обрабатываются исправными узлами, но, вероятно, несколько медленнее, чем обычно.