27_SH43-0144-00 (1038594), страница 62
Текст из файла (страница 62)
Записиутилиты аудита могут записываться синхронно или асинхронно относительнособытий, для которых генерируются эти записи. Время записей утилиты аудитаопределяется параметром конфигурации менеджера баз данныхAUDIT_BUF_SZ.Если значение этого параметра равно нулю (0), запись осуществляетсясинхронно. Событие, генерирующее запись, ожидает, пока эта запись не будетпомещена на диск. Ожидание, связанное с каждой записью, приводит кснижению производительности DB2.При значении параметра AUDIT_BUF_SZ больше нуля запись осуществляетсяасинхронно.
Значение параметра AUDIT_BUF_SZ больше нуля - это числостраниц по 4 Кбайта, используемых для внутреннего буфера. Внутренний буфериспользуется для хранения определенного числа записей, чтобы потом записатьГлава 6. Аудит действий DB2283их на диск одной операцией. Оператор, сгенерировавший результат событияаудита, не должен ждать, пока эта запись будет помещена на диск, и можетпродолжать обработку.В асинхронном случае записи аудита могут некоторое время оставаться внезаполненном буфере.
Чтобы они не хранились в буфере долго, менеджер базданных регулярно записывает записи аудита принудительно. Кроме того, буфераудита можно записать на диск по явному требованию авторизованногопользователя.Если происходит ошибка, ее последствия при синхронной записи отличаются отпоследствий при асинхронной записи. В асинхронном режиме можно потерятьнесколько записей, так как записи аудита перед помещением на диск хранятся вбуфере. В синхронном режиме ошибка может привести к потере максимумодной записи аудита.Значение параметра утилиты аудита ERRORTYPE (тип ошибки) задает способобработки ошибок DB2 и утилитой аудита. Если утилита аудита активна, и дляпараметра ERRORTYPE установлено значение AUDIT, утилита аудитарассматривается, как любая другая часть DB2. Запись аудита должназаписываться (на диск - в синхронном режиме и в буфер аудита - в асинхронномрежиме) для события аудита, связанного с успешно обработанным оператором.Если при работе в этом режиме происходит ошибка, программе возвращаетсяотрицательный SQLCODE для оператора, генерирующего записи аудита.
Еслидля параметра типа ошибки установлено значение NORMAL, все ошибки db2auditигнорируются, и возвращается SQLCODE данной операции. Дополнительнуюинформацию о параметре утилиты аудита ERRORTYPE и других связанных сним параметрах смотрите в разделе “Сценарий использования утилиты аудита”на стр. 285.В зависимости от API или от оператора SQL и настроек экземпляра DB2 дляопределенного события может генерироваться одна, ни одной или несколькозаписей аудита.
Например, для оператора SQL UPDATE с подзапросом SELECTможет быть сгенерирована одна запись аудита, содержащая результатыпроверки авторизации привилегии на таблицу UPDATE, и другая запись,содержащая результаты проверки авторизации привилегии на таблицу SELECT.Для операторов DML (dynamic data manipulation language - язык динамическогоуправления данными) записи аудита генерируются для каждой проверкиавторизации во время подготовки оператора. Повторное использование такихоператоров одним и тем же пользователем не будет обрабатываться утилитойаудита, так как в этот момент авторизация не проверяется. Однако если в однуиз таблиц каталога, содержащих информацию о привилегиях, вноситсяизменение, то в следующей единице работы привилегии оператора длякэшируемых операторов динамического SQL проверяются заново, и создаетсяодна или несколько новых записей аудита.|||||||||284Руководство администратора: Реализация||||||||||Для пакета, содержащего только статические операторы DML, единственноесобытие аудита, которое может генерировать запись аудита - это проверкаавторизации, выясняющая наличие у пользователя привилегии на выполнениеданного пакета.
Проверка авторизации и возможное создание записи аудита,требуемые для операторов статического SQL в пакете, выполняются во времяпрекомпиляции или связывания пакета. Выполнение операторов статическогоSQL в пределах пакета утилитой аудита не обрабатывается. При повторномсвязывании пакета (либо явно пользователем, либо неявно системой) записиаудита генерируются для проверок авторизации, требуемых операторамистатического SQL.Для операторов, где проверка авторизации проводится во время выполненияоператора (например, для операторов DDL GRANT и REVOKE), записи аудитагенерируются при каждом использовании этих операторов.Примечание: При выполнении DDL номер раздела, записанный для всехсобытий в записи аудита (кроме событий контекста), будетнулевым (0) независимо от того, какой номер раздела был уоператора.Сценарий использования утилиты аудитаРассмотрим синтаксис утилиты аудита и способы ее использования.Глава 6.
Аудит действий DB2285Рисунок 7. Синтаксис DB2AUDITНиже приводится описание и предполагаемое использование каждогопараметра:286Руководство администратора: РеализацияconfigureЭтот параметр позволяет изменять файл конфигурации db2audit.cfg вподкаталоге security экземпляра. Этот файл можно изменить даже послезавершения работы экземпляра. Изменения файла, выполняемые приактивном экземпляре, динамически воздействуют на процесс аудита,выполняемый DB2 по всем разделам. Если утилита аудита запущена, ивыполняется аудит событий категории аудит, конфигурирование файлаконфигурации приводит к созданию записи аудита.Ниже приводятся возможные действия в файле конфигурации:v RESET.
Это действие восстанавливает начальную конфигурациюфайла (в которой SCOPE означает все категории, CONTEXT, дляSTATUS установлено значение FAILURE, для ERRORTYPE установлено значение NORMAL, и для AUDIT - OFF). Если оригиналфайла конфигурации аудита был потерян или поврежден, это действиесоздает новый файл конфигурации.v SCOPE. Это действие задает категорию или категории событий дляаудита. При этом можно сосредоточить внимание на конкретныхсобытиях и ограничить рост объема журнала. Рекомендуетсяограничить число регистрируемых событий и их типы, насколько этовозможно, иначе объем журнала аудита будет быстро расти.Примечание: Помните, что значение по умолчанию SCOPE означаетвсе категории, кроме CONTEXT, что может служитьпричиной генерации большого числа записей.
Выборкатегорий совместно с выбором режима (синхронногоили асинхронного) может значительно уменьшитьпроизводительность и существенно повыситьтребования к дисковому пространству.v STATUS. Это действие задает регистрацию в журнале толькоуспешных событий, только неудачных событий или и тех, и других.Примечание: События контекста происходят до определениясостояния операции. Поэтому эти событиярегистрируются в журнале независимо от значения дляданного параметра.v ERRORTYPE. Это действие задает, возвращать ошибки аудитапользователю или игнорировать.
Для этого параметра допустимыследующие значения:– AUDIT. Все ошибки, включая ошибки утилиты аудита, передаютсяDB2, и все отрицательные SQLCODE возвращаются ввызывающую программу.– NORMAL. Любые ошибки, генерируемые утилитой db2audit,игнорируются, и в программу возвращаются только SQLCODEдля ошибок, связанных с выполняемой операцией.Глава 6. Аудит действий DB2287describeЭтот параметр служит для стандартного вывода текущей информации оконфигурации и состояния аудита.extract Этот параметр позволяет переместить записи из журнала аудита вуказанное место назначения.
Если не задать дополнительных условий,все записи аудита извлекаются и помещаются в плоский файл отчета.Если параметр “extract” не задан, записи аудита помещаются в файлdb2audit.out, расположенный в подкаталоге security. Есливыходной_файл уже существует, возвращается сообщение об ошибке.При извлечении могут использоваться следующие допустимые опции:v FILE. Извлеченные записи аудита помещаются в файл(выходной_файл).v DELASC.
Извлеченные записи аудита переводятся в формат ASCII сограничителями, удобный для загрузки в реляционные таблицы DB2.Вывод помещается в отдельные файлы: по одному файлу накатегорию. Используются следующие имена файлов:– audit.del– checking.del– objmaint.del– secmaint.del– sysadmin.del– validate.del– context.delВ операции извлечения из журнала аудита значение DELASC такжепозволяет переопределить ограничитель по умолчанию символьнойстроки аудита (“0xff”). После DELASC DELIMITER можно задатьновый ограничитель, который вам хотелось бы использовать дляподготовки к загрузке в таблицу, куда будут помещаться записиаудита.
Новый ограничитель может быть либо одиночным символом(например !), либо четырехбайтной строкой, представляющейшестнадцатеричное число (например 0xff). Дополнительнуюинформацию смотрите в разделе “Советы и приемы для работы сутилитой аудита” на стр. 305.v CATEGORY. Извлекаются записи аудита для заданных категорийсобытий аудита. Если не задать категории для извлечения,выбираются все категории.v DATABASE.
Извлекаются записи аудита для заданной базы данных.Если не задать базу данных, выбираются все базы данных.v STATUS. Извлекаются записи аудита для заданного состояния. Еслине задать состояние, выбираются все состояния.flush288Этот параметр служит для принудительной записи в журнал всехотложенных записей аудита. Кроме того, если утилита аудитаРуководство администратора: Реализациянаходится в состоянии ошибки, внутреннее состояние аудита изменяетсяс “unable to log” (запись невозможна) меняется на “ready to log” (готово кзаписи).pruneЭтот параметр позволяет удалять записи из журнала аудита.