Введение в системы БД (542480), страница 155
Текст из файла (страница 155)
б08 Часть К Дополнительные аспекты В заключение необходимо отметить следующее: выше предполагалось, хотя явно нигде не заявлялось, что пользователи могут выполнять только те действия, которые им позволено выполнять предоставленными полномочиями. Все, что не позволено явным образом, неявно запрещено! Модификация запроса Для иллюстрации некоторых представленных выше идей целесообразно описать аспекты защиты данных, реализованные в университетском прототипе системы 1пЕгез, а также особенности используемого в ней языка запросов О()Е(..
В этой реализации был принят довольно интересный подход к решению проблем защиты, заключающийся в том, что любой запрос на языке О()Е(. перед выполнением автоматически модифицировался таким образом, чтобы предотвратить любые возможные нарушения установленных ограничений защиты. В качестве примера предположим, что пользователю 0 разрешено считывать данные только о тех деталях, которые хранятся в Лондоне. Это ограничение описывается следующим выражением.
РЕР1НЕ РЕВМ1Т КЕТКХЕЧЕ ОМ Р ТО 0 ИНЕКЕ Р.С1ТХ = 'Ьопбол' (Оператор ЭЕР1НЕ РЕВМ1Т будет подробно описан ниже.) Теперь предположим, что пользователь 0 вводит приведенный ниже запрос на языке О()Е(.. ВЕТВ1ЕЧЕ ( Р.Р1, Р.ИЕ16НТ ) ИНЕВЕ Р.СОЬОВ = 'Ввб' Используя приведенное выше "разрешение" (РЕВМ1Т) для комбинации переменной- отношения Р и пользователя О, сохраняемое в системном каталоге, СУБД 1ХОВЕЕ автоматически преобразует приведенный выше запрос в запрос следующего вида. КЕТК1ЕЧЕ ( Р.Р)), Р.ИЕХОНТ ) ИНЕВЕ Р.СОЬОВ = 'Кеб' АНО Р.С1ТХ = '1ллбоп' Безусловно, модифицированный подобным образом запрос едва ли сможет нарушить установленное ограничение защиты. Обратите внимание, что процесс модификации происходит совершенно "незаметно", т.е. пользователь 0 никак не информируется о том, что фактически система выполнила запрос, который несколько отличается от исходного.
Дело в том, что сокрытие этой информации может быть само по себе достаточно важным (например, пользователю 0 не следует даже знать о том, что существуют детали, которые хранятся не в Лондоне). Кратко описанный выше процесс модификации запроса полностью идентичен методу, используемому для реализации представлений [8.20], а также (особенно в случае прототипа системы 1пЕгез) ограничений целостности [9,15]. Таким образом, важное преимушество данного подхода заключается в том, что его достаточно просто реализовать (в основном, благодаря тому, что необходимый для этого программный код уже присутствует в системе). Другое его преимушество — сравнительно высокая эффективность, так как увеличение накладных расходов (по крайней мере, частично), связанных с реализацией ограничений защиты, приходится на время компиляции, а не на время выполнения программы. Еше одно преимушество данного подхода состоит в 609 Глава )б.
Защита данных том, что при его использовании отсутствуют определенные неудобства, свойственные подходу, реализованному в языке БОЕ, когда для одного пользователя требуется задавать разные привилегии при обращении к разным частям одной и той же переменной- отношения (см. раздел 1б.б). Единственный недостаток этого подхода заключается в том, что не всем ограничениям защиты можно припать столь простую форму.
В качестве простейшего обратного примера предположим, что пользователю У запрещен доступ к переменной-отношению Р. Тогда любая достаточно простая "модифицированная" форма приведенного выше определения полномочий на выборку данных непременно создаст иллюзию, что переменной-отношения Р просто не существует. В результате система обязательно выдаст сообщение об ошибке приблизительно следующего содержания: "Вам не разрешен доступ к указанной переменной-отношению". (Или, вероятно, система просто скроет истину н лукаво сообщит: "Такой переменной-отношения не существует".) В общем вине синтаксис оператора определения полномочий РЕГ1ИЕ РЕВИ1Т выглядит так.
РЕГ1ИЕ РЕВИ1Т ОМ ТО ( АТ ] ГНОИ [ ОН ( ННЕВЕ Таким образом, концептуально синтаксис оператора определения полномочий ОЕГ1НЕ РЕВИ1Т очень похож на синтаксис оператора определения полномочий АОТНОВ1ТУ, за исключением того, что он разрешает указание дополнительных условий в предложении НБЕНЕ. Ниже приведен пример подобного определения. Занечание.
Операторы добавления (АРРЕВО) и замены (ВЕРЕАСЕ) являются аналогами операторов вставки (1НЯЕВТ) и обновления (ОРОАТЕ) соответственно. Контрольное слежение Важно понимать, что неуязвимых систем защиты не бывает. Настойчивый потенциальный нарушитель всегда сможет преодолеть все установленные системы контроля, особенно если за это ему будет предложено достаточно высокое вознаграждение. Поэтому при работе с очень важными данными или при выполнении ответственных операций 610 Часть №".
Дополнительные аспекты РЕГ1ИЕ РЕВИ1Т ОВ ТО АТ ГНОИ ОН НБЕНЕ АНО АВО АИО <спнсок названнн операторов > <нмя переменной-отношения> ( ( <спнсок имен атрибутов> ] ] <ндентнфнкатор пользователя> <спнсок нмен терминалов> ] <время> ТО <вреюг> ] <день> ТО <день> ] <лотнческое выражение> ] АРРЕНО, ВЕТВ1ЕРЕ, ВЕРЫСЕ Я ( Я№, С1ТУ] Лое ТТА4 9:00 ТО 17з00 Яас ТО Бцл Б.ЯТАТОБ < 50 Я.Я№ = ЯР.Р№ ЯР.Р№ = Р.Р№ Р.СОЕОВ = 'Вед' возникает необходимость организации контрольного слежении за происходящими в системе событиями. Пусть, например, противоречивость полученных результатов вызывает подозрение, что имело место злонамеренное искажение информации, хранящейся в базе данных.
В этом случае для прояснения ситуации могут использоваться записи контрольного слежения, что позволит либо подтвердить тот факт, что все процессы находятся под контролем, либо обнаружить вмешательство и установить нарушителя. Метод контрольного слежения предусматривает использование особого файла или базы данных, в которую СУБД автоматически помещает сведения обо всех операциях, выполненных пользователями при работе с основной базой данных. В одних системах данные контрольного слежения могут физически записываться в файл системного журнала, используемого для восстановления (см, главу!4), в других системах эти сведения помещаются в отдельный файл.
В любом случае пользователям должен быть предоставлен механизм доступа к информации контрольного слежения, желательно с помощью средств обычного языка реляционных запросов (конечно, при условии, что эти запросы санкционированы!). Типичная запись в файле контрольного слежения может содержать такую информацию: сам запрос (исходный текст запроса); имя терминала, с которого была затребована операция; имя пользователя, затребовавшего операцию; дата и время запуска операции; переменные-отношения, кортежи и атрибуты, вовлеченные в процесс выполнения операции; исходные значения измененных данных; новые значения измененных данных. Как уже упоминалось, даже сам факт, что в системе осуществляется контрольное слежение, в определенных ситуациях способен отпугнуть потенциального нарушителя.
16.3. Мандатная схема управления доступом Методы мандатного управления доступом применяются к тем базам данных, в которых хранимая информация имеет достаточно статичную и жесткую структуру, что свойственно, например, некоторым правительственным или военным организациям. Как отмечалось выше, основная идея состоит в том, что каждому объекту данных присваивается некоторый классификационный уровень (или требуемый гриф секретности, например "Секретно", "Совершенно секретно", "Для служебного пользования" и т.д.), а каждому пользователю предоставляется уровень допуска с градациями, аналогичными существующим классификационным уровням. Предполагается, что эти уровни образуют строгую иерархическую систему (например, "Совершенно секретно" > "Секретно" > "Для служебного пользования" и т.д.).
Тогда исходя из этих положений можно сформулировать два очень простых правила. впервые предложенных Беллом и Ла-Падулой 116.1]. 1. Пользователь з может получить доступ к объекту 1 только в том случае, если его уровень допуска больше классификационного уровня объекта з или равен ему ("ограничение простой зашиты"). Глава 1б. Защи>па данных 611 2.