7.4.2. Конфигурирование списков протоколируемых событий
Что такое “маска”
Маска определяет список действий, информация о которых будет фиксироваться. Существуют глобальные маски, применимые ко всем пользователям, и индивидуальные маски, применимые к конкретному пользователю. Каждая маска имеет имя. Имеются следующие три глобальные маски:
_default - маска по умолчанию, которая применяется ко всем пользователям, у которых нет индивидуальной маски.
_require - маска, в которой указаны действия, которые будут протоколироваться для всех пользователей.
_exclude - маска, которая содержит список всех действий, которые не будут протоколироваться для любого пользователя.
Для каждого конкретного пользователя может быть создана индивидуальная маска. В этом случае, имя индивидуальной маски для пользователя совпадает с системным именем пользователя. Например, для пользователя andy индивидуальная маска тоже будет называться “andy”. Естественно, названия индивидуальных масок не должны совпадать с именами глобальных масок (_default, _require, _exclude).
Алгоритм применения масок следующий. Как только некоторый пользователь исполняет какое-либо действие, встроенный в сервер баз данных механизм аудитинга проверяет надо ли протоколировать это действие. Если у пользователя есть индивидуальная маска, то она просматривается. Если индивидуальной маски нет, то просматривается маска _default. Затем просматривается глобальная обязательная маска _require. Если ни одна из этих масок не содержит описание выполняемого действия, то данное действие не протоколируется. Если же выполняемое действие в одной из этих масок указано, то оно будет запротоколировано, но только если данное действие не указано в маске _exclude.
Другими словами, для пользователя никогда не будут протоколироваться действия, указанные в глобальной маске _exclude. Если же действие не указано в маске _exclude, но указано в ндивидуальной маске (или в маске _default, если индивидуальной маски нет) или в глобальной маске _require, то оно будет запротоколировано.
Итак, маска - это набор действий. Следовательно, нужно уметь различать, идентифицировать возможные действия. Каждое событие, каждое действие в системе аудитинга имеет свой 4-х символьный код. Полный список кодов приведен в системной документации. Здесь, в качестве примера, дадим список некоторых действий, наиболее интересных с точки зрение отслеживания действий пользователей по доступу к информации:
ACTB - доступ к таблице;
LSDB - получение списка баз данных;
OPDB - открытие базы данных;
RDRW - чтение одной записи.
Просмотр, создание, модификация и удаление масок
Только пользователи из группы DBSSO могут просматривать, создавать, удалять и модифицировать маски. Для выполнения данных действий служит утилита onaudit. Для того, чтобы вывести на экран информацию о всех существующих масках, необходимо выполнить команду
onaudit -o
Если выполнить эту команду сразу после инсталляции сервера Informix Dynamic Server, то вы не увидите ни одной существующей маски (в том числе и глобальные маски). Далее, требуемые маски надо создать. Предположим, мы хотим для всех пользователей в обязательном порядке протоколировать открытие базы данных. Для этого надо в глобальную маску _require добавить событие OPDB (“открытие базы данных”)
onaudit -a -u _require -e OPDB
Утилита onaudit, пример использования которой приведен выше, имеет следующий ситаксис для создания маски с некоторым набором событий:
onaudit -a -u <имя маски> -e <код события>, <код события>, ……
С помощью утилиты onaudit можно проводить и модификацию существующей маски - добавлять или удалять события маски. Для этого используется опция “-m”. Добавляемые в маску события надо указать после опции “-e”, а удаляемые из маски события указываются после опции “-e” и знака минус:
onaudit -m -u <имя маски> -e - <код удаляемого события>, ……
onaudit -m -u <имя маски> -e <код добавляемого события>, ……
Опция “-d” утилиты onaudit задает команду удаления маски:
onaudit -d -u <имя маски>
Например, следующий набор команд создает индивидуальную маску для пользователя micky, содержащую фиксацию всех операций чтения данных, из глобальной маски _default удаляет фиксацию события RDRW (чтение какого-либо ряда из таблицы), и целиком удаляет индивидуальную маску для пользователя andy:
onaudit -a -u micky -e OPDB, ACTB, LSDB, RDRW onaudit -m -u _default -e - RDRW onaudit -d -u andy
Задание дополнительных условий на событие
Система аудитинга, реализованная в Informix Dynamic Server, позволяет дополнительно специфицировать протоколируемые действия. А именно, можно указать, что надо не всегда протоколировать некоторое действие, а только в том случае, если данное действие было успешно выполнено. Или наоборот, мы можем задать протоколирование только неудачной попытки выполнить некоторое действие. Для этого в командах создание (onaudit -a) или модификации (onaudit -m) списка событий для маски перед кодом действия надо указать символ “F” (для протоколирования неуспешных попыток) или символ “S” (для протоколирования успешных событий). Например:
onaudit -m -u micky -e FOPDB, SACTB
- 4.5. Упражнения 67
- Глава 6. Устройство Informix Dynamic Server 165
- Глава 7. Эксплуатация информационных систем 177
- Глава 1 Обзор основных архитектур баз данных
- 1.1. Архитектура на основе разделяемых файлов
- 1.2. Архитектура “Хост-терминал”
- 1.3. Архитектура “Клиент-Сервер”
- 1.4. Архитектура с использованием сервера приложений (трехзвенная архитектура)
- 1.5. Упражнения
- Глава 2 Модели данных
- 2.1. Уровни восприятия данных
- 2.2. Иерархическая модель данных
- 2.3. Сетевая модель данных
- 2.4. Реляционная модель данных
- 2.5. Объектно-реляционная модель данных
- Глава 3 Реализация информационных систем на основе продуктов Informix Software
- 3.1. Обзор продуктов Informix
- 3.2. Варианты построения систем
- Internet/Intranet-конфигурация
- 3.3. Выбор оптимальной конфигурации
- Глава 4 Математические основы реляционных субд
- 4.1. Основные понятия
- 4.2. Ключи
- 4.3. Основные операции над таблицами и их интерпретация
- 4.4. Нормализация
- 4.5. Упражнения
- Глава 5 Язык sql
- 5.1. Типы данных, доступные в sql
- 5.3. Основные sql-операторы для доступа и модификации данных
- 5.4. Управление транзакциями
- 5.5. Продвинутые варианты оператора поиска
- 5.5.1. Поиск по нескольким таблицам
- 5.5.2. Устранение повторения данных в операторе select
- 5.5.3. Вычисления внутри оператора select
- 5.5.4. Логические выражения в условии sql-операторов
- 5.5.5. Слияние двух выборок
- 5.5.6. Сортировка выборки
- 5.5.7. Вставка в таблицу нескольких строк одновременно
- 5.6. Использование sql в языках программирования
- 5.7. Программирование сервера базы данных
- 5.7.1. Динамический sql
- 5.7.3. Хранимые процедуры
- 5.7.4. Триггеры
- 5.8. Ограничители (задание целостности на уровне схемы)
- 5.9. Разграничение в sql прав пользователей
- 5.9.1. Права доступа
- 5.9.2. Права на уровне базы данных
- 5.9.3. Права на таблицы
- 5.9.4. Права на хранимые процедуры
- 5.9.5. Кто и как следит за соблюдением прав
- 5.9.6. Механизм ролей
- 5.9.7. Псевдотаблицы (view)
- 5.9.7. Синонимы
- 5.10. Управление одновременным доступом к данным
- 5.10.1. Что бывает, когда несколько человек одновременно пытаются обновить одни и теже данные
- 5.10.2. Открытие базы данных только для себя
- 5.10.3. Блокирование таблицы
- 5.10.4. Механизм блокирования записей и уровни изоляции
- 5.10.5. Управление ожиданием снятия блокировок
- 5.10.6. Тупиковые ситуации
- 5.11. Повышение скорости обработки запросов.
- 5.11.1. Индексы
- 5.11.2. Буферизация журнала транзакций
- 5.11.3. Блокировка на уровне записей и страниц
- 5.11.4. Эффективное построение запросов
- 5.11.5. Сортировка и поиск по коротким полям. Классификаторы
- 5.12. Объектное расширение sql в Informix ds/Universal Data Option
- 5.12.1. Зачем нужна поддержка объектов в серверах бд?
- 5.12.3. Внедрение объектно-ориентированной технологии
- 5.12.4. Реализация объектного подхода в Informix
- Informix ds/Universal Data Option - объектно-реляционная субд
- 5.12.5. Итак…
- Глава 6. Устройство Informix Dynamic Server
- 6.1. Внутренняя архитектура dsa
- 6.2. Механизм хранения данных
- 6.3. Инсталляция продукта
- 6.4. Запуск и останов сервера
- 6.5. Работа с русским языком
- Глава 7. Эксплуатация информационных систем
- Администрирование серверов баз данных
- 7.2. Обеспечение сохранности данных.
- 7.2.1. Технологии постоянного дублирования
- 7.2.2. Архивация
- 7.2.3. Так как же обеспечить сохранность данных?
- 7.3. Архивирование и восстановление данных
- 7.3.1. Что нужно архивировать
- 7.3.2. Утилиты архивации и восстановления
- 7.3.3. Создание архивов утилитой ontape
- 7.3.4. Восстановление из архивов утилитой ontape
- 7.3.5. Как узнать “когда”?
- 7.3.6. Практические советы
- 7.4. Средства контроля за доступом
- 7.4.1 Как работает аудитинг?
- 7.4.2. Конфигурирование списков протоколируемых событий
- 7.4.3. Задание файлов, запуск и остановка механизма аудитинга
- Анализ протокола
- 7.4.5. Практические советы или Что делать, если вы хотите…
- 7.5. Реагирование на чрезвычайные ситуации
- 7.6. Мониторинг текущего состояния сервера базы данных
- 7.6.1. Кто работает с сервером базы данных
- 7.6.2. Сколько памяти использует сервер бд
- 7.6.3. Сколько свободного места имеется у сервера бд
- 7.7. Достижение требуемой производительности
- 7.7.1. Как узнать, что ждет некоторый запрос
- 7.7.2. Как выяснять причины падения производительности
- 2. Общие принципы предлагаемой технологии
- 3. Как портировать приложение