- •Предисловие
- •1. Основы информационного обеспечения процессов и систем
- •1.1. Понятие и содержание информационного обеспечения
- •1.2. Структура и классификация информационных систем
- •1.3. Система представления и обработки данных фактографических аис
- •Вопросы и упражнения
- •2. Системы управления базами данных фактографических информационных систем
- •2.1. Функции, классификация и структура субд
- •2.2. Модели организации данных
- •2.2.1. Иерархическая и сетевая модели организации данных
- •2.2.2. Реляционная модель организации данных
- •2.3. Внутренняя схема баз данных фактографических аис
- •2.3.1. Физические структуры данных
- •2.3.2. Индексирование данных
- •2.3.3. Расстановка (хеширование) записей
- •Вопросы и упражнения
- •3. Основы создания автоматизированных информационных систем
- •3.1. Общие положения по созданию автоматизированных систем
- •3.2. Проектирование банков данных фактографических аис
- •3.2.1. Концептуальное проектирование
- •3.2.2. Проектирование схем реляционных баз данных
- •3.2.2.1. Проектирование и создание таблиц
- •3.2.2.2. Нормализация таблиц
- •Вопросы и упражнения
- •4. Ввод, обработка и вывод данных в фактографических аис
- •4.1. Языки баз данных
- •4.2. Ввод, загрузка и редактирование данных
- •4.2.1. Ввод и редактирование данных в реляционных субд
- •4.2.2. Особенности ввода и загрузки данных в субд с сетевой моделью организации данных
- •4.3. Обработка данных
- •4.3.1. Поиск, фильтрация и сортировка данных
- •4.3.2. Запросы в реляционных субд
- •4.3.2.1. Запросы на выборку данных
- •4.3.2.1.1. Запросы на выборку данных из одной таблицы
- •4.3.2.1.2. Запросы на выборку данных из нескольких таблиц
- •4.3.2.1.3. Вычисления и групповые операции в запросах
- •4.3.2.2. Запросы на изменение данных
- •4.3.2.3. Управляющие запросы
- •4.3.2.4. Подчиненные (сложные) запросы
- •4.3.2.5. Оптимизация запросов
- •4.3.3. Процедуры, правила (триггеры) и события в базах данных
- •4.3.4. Особенности обработки данных в субд с сетевой моделью организации данных
- •4.4. Вывод данных
- •Вопросы и упражнения
- •5. Распределенные информационные системы
- •5.1. Понятие распределенных информационных систем, принципы их создания и функционирования
- •5.2. Технологии и модели «Клиент-сервер»
- •5.2.1. Модель файлового сервера
- •5.2.2. Модель удаленного доступа к данным
- •5.2.3. Модель сервера базы данных
- •5.2.4. Модель сервера приложений
- •5.2.5. Мониторы транзакций
- •5.3. Технологии объектного связывания данных
- •5.4. Технологии реплицирования данных
- •Вопросы и упражнения
- •6. Документальные информационные системы
- •6.1. Общая характеристика и виды документальных информационных систем
- •6.2. Информационно-поисковые каталоги и тезаурусы
- •6.2.1. Классификационные системы поиска документов
- •6.2.2. Координация понятий в классификационных системах
- •6.2.3. Информационно-поисковые тезаурусы
- •6.2.4. Автоматизация индексирования документов
- •6.3. Полнотекстовые информационно-поисковые системы
- •6.3.1. Информационно-технологическая структура полнотекстовых ипс
- •6.3.2. Механизмы поиска документов в полнотекстовых ипс
- •6.3.3. Методы количественной оценки релевантности документов
- •6.4. Гипертекстовые информационно-поисковые системы
- •6.4.1. Гипертекст
- •6.4.2. Структура, принципы построения и использования гипертекстовых ипс
- •6.4.3. Модель организации данных в гипертекстовых ипс
- •6.4.4. Формирование связей документов в гипертекстовых ипс
- •Вопросы и упражнения
- •7. Администрирование информационных систем и защита данных
- •7.1. Администрирование информационных систем
- •7.2. Разграничение доступа и защита данных
- •7.2.1. Понятие и модели безопасности данных
- •7.2.2. Технологические аспекты защиты информации
- •7.2.2.1. Идентификация и аутентификация
- •7.2.2.2. Языки безопасности баз данных
- •7.2.2.3. Безопасность повторного использования объектов
- •7.2.2.4. Надежное проектирование и администрирование
- •7.2.3. Требования и классы защищенности автоматизированных (информационных) систем в «Руководящих документах...» Государственной технической комиссии при Президенте рф
- •Вопросы и упражнения
- •Литература
- •Алфавитно-предметный указатель Содержание
7.2.2.2. Языки безопасности баз данных
Для определения конкретных назначений или установления правил и ограничений доступа при проектировании банков данных АИС, а также в целях управления системой разграничения доступа и в более широком смысле системой коллективной обработки данных администратору системы необходим специальный инструментарий. Такой инструментарий должен основываться на определенном языке, позволяющем описывать и устанавливать те или иные назначения доступа и другие необходимые установки политики безопасности в конкретной АИС.
В реляционных СУБД такой язык должен являться соответственно составной частью языка SQL.Исторически впервые подобные вопросы были поставлены и реализованы в упоминавшихся языках SEQUEL(созданного в рамках проектаSystem Rфирмы IBM)и языка QUEL(созданного в рамках проекта INGRES)и послуживших в дальнейшем основой для языка SQL.
Как уже отмечалось в п. 4.1, в перечне базовых инструкций языка SQLпредставлены инструкции GRANT и REVOKE, предоставляющие или отменяющиепривилегии пользователям. Структура инструкции GRANTвыглядит следующим образом:
GRANTсписок_привилегий_через_запятую ONИмяОбъекта
TOИменаПользователей_через_запятую
[WITHGRANTOPTION];
где:
— список привилегий составляют разрешенные инструкции (операции) над объектом (таблицей) — SELECT, INSERT, UPDATE, DELETE;
— список пользователей представляется их именами-идентификаторами или может быть заменен ключевым словом PUBLIC,которое идентифицирует всех пользователей, зарегистрированных в системе;
— директива WITH GRANT OPTION наделяет перечисленных пользователей дополнительными особыми полномочиями по предоставлению (перепредоставлению) указанных в списке привилегий-полномочий другим пользователям.
В большинстве случаев право подачи команд GRANDиREVOKEпо конкретному объекту автоматически имеют пользователи, создавшие данный объект, т. е. ихвладельцы.В других подходах этим правом наделяются доверенные субъекты, т. е. администраторы.
Хотя в явном виде такой подход не предусматривает создание матрицы доступа,*тем не менее, реализуется классический принципдискреционного разграничения доступас сочетанием какдобровольного,так ипринудительного управления доступом.
*На самом деле в большинстве СУБД привилегии и установки доступа, как и структура базы данных, «прописываются» в системных таблицах БД, т.е. в системном каталоге БД. который можно рассматривать, в том числе и в качестве матрицы доступа.
Как уже отмечалось, дискреционный принцип обладает большой гибкостью по настройке системы разграничения доступа на особенности предметной области базы данных и потребности пользователей, но не обеспечивает эффективной управляемости и затрудняет проведение какой-либо целенаправленной политики безопасности в системе. Преодоление этого недостатка достигается двумя путями — использованием техники «представлений» и специальными расширениями языка SQL.
Использование техники представленийявляется распространенным технологическим приемом формирования для конкретного пользователя своего «видения» базы данных (виртуальной БД) и осуществления на этой основе разграничения доступа к данным в реляционных СУБД. Напомним, что «представлением» называется глобальный авторизованный запрос на выборку данных, формирующий для пользователя «свое» представление определенного объекта (объектов), совокупность которых формирует некую виртуальную базу данных, со своей схемой (объектами) и данными (отобранными или специально преобразованными). При входе пользователя в систему в процессе его идентификации и аутентификации ядро безопасности отыскивает для пользователя соответствующие представления-запросы и передает запрос основному ядру СУБД для выполнения. В результате выполнения запроса пользователь «видит» и имеет доступ только к тем объектам, которые соответствуют его полномочиям и функциям.
В целом создание системы разграничения доступа через технику представлений является более простым способом, чем непосредственное использование инструкций GRANT,и осуществляется в два этапа:
1. Для всех зарегистрированных пользователей в системе с помощью конструкций CREAТЕ VIEW создаются свои представления объектов базы данных.
2. С помощью инструкций «GRANT SELECT ONИмяПредставленияТОИмяПользователя» созданные представления авторизуются со своими пользователями.
Вместе с тем такой подход является более грубым по сравнению с применением инструкции GRANTнепосредственно к объектам базы данных, т. к. не обеспечивает расщепления установок доступа к объектам на уровне отдельных операций(SELECT, INSERT, UPDATE, DELETE).
Поэтому другим подходом являются специальные расширения языка SQL,основанные на событийно-процедурной идеологии с введением специальных правил (RULE)безопасности:
CREATESECURITYRULEИмяПравила
GRANTсписок_привилегий_через_запятую ON ИмяОбъекта
WHEREусловия
TOИменаПользователей_через_запятую
Реакция_на_нарушение_правила;
Введение правил безопасности обеспечивает более широкие и гибкие возможности реализации различных политик безопасности с большей степенью контроля и управляемости, но, как, впрочем, и техника представлений и непосредственное использование инструкций GRANT,не позволяет строить системы с мандатным принципом разграничения доступа,который считается более жестким и надежным.
Для решения этой задачи могут предлагаться более кардинальные расширения языка SQLс введением возможностей созданияобъектов базы данных с метками конфиденциальности.Следует, однако, заметить, что подобные примеры в коммерческих и сертифицированных по требованиям безопасности СУБД чрезвычайно редки.
В заключение по языкам безопасности баз отметим, что в современных СУБД для реализации установок, правил и ограничений доступа разрабатывается и используется специальный диалогово-наглядный интерфейс, автоматически формирующий соответствующие конструкции языка SQLи позволяющий в большинстве случаев обходиться без непосредственного программирования.