Управление доступом
Для каждого пользователя система поддерживает паспорт пользователя, составленный администратором базы данных. В паспорте присутствует системный идентификационный номер пользователя, имя процедуры подтверждения подлинности, перечень разрешенных операций. Паспорт определяет профиль пользователя.
Однако в ряде случаев информация о составе разрешенных пользователю операций оказывается недостаточной для решения вопроса о допустимости выполнения этих операций с конкретными данными. Поэтому каждое групповое данное должно иметь связанный с ним набор ограничений доступа. Этот набор ограничений содержит: условие, которому должен удовлетворять пользователь, чтобы иметь доступ к групповому данному; пароль, предъявляемый при выборке некоторых комбинаций данных из группового данного;
пароль, предъявляемый при модификации этих данных, и т. п.
Специальная подпрограмма СУБД проверяет, не нарушено ли какое-либо ограничение из набора. В случае нарушения подавляется выполнение операции пользователя, выдается ему сигнал ошибки и фиксируется в специальном журнале факт попытки нарушения безопасности данных.
В общем случае для решения вопроса о доступе пользователя к данным в составе СУБД должна быть специальная привилегированная программа, проверяющая запрос пользователя на основании его паспорта, набора ограничений и конкретных значений данных в БД и решающая вопрос о разрешении или запрещении доступа. Поскольку эта программа должна иметь неограниченный по выборке доступ к любым данным в БД, администратором базы данных должны быть приняты специальные меры защиты программы, исключающие возможность ее использования не по назначению. Алгоритм подобной программы базируется на аксиоме безопасности и реализует различные проверки.
Аксиома безопасности. Если комбинация атрибутов Л доступна (запрещена) пользователю Х в зависимости от условия В, то каждая подкомбинация А также доступна (запрещена) пользователю Х по условию В.
Состав проверок может быть, например, следующим.
1. Все ли отношения, упомянутые в запросе, доступны пользователю X?
2. Все ли поколения, упомянутые в запросе, доступны пользователю X?
3. Все ли комбинации атрибутов, упомянутые в запросе, доступны пользователю X?
4. Задано ли квалифицирующее выражение, которое ограничивает для пользователя Х диапазон значений атрибутов, и если да, то лежат ли их значения внутри диапазона, доступного для X?
Если в результате проверок будет получен отрицательный ответ, то программа информирует пользователя об отклонении его запроса.
Дата добавления: 2015-02-10; просмотров: 578;