OpenEdge Auditing – забытая история
Выключение OpenEdge Auditing
Выключение OpenEdge Auditing может быть выполнено двумя способами. Первый, это приостановление его работы – состояние Deactivated. Второй это полное отключение его работы – состояние Disable. В любом случае, для выключения OpenEdge Auditing используется утилита PROUTIL с классификатором DISABLEAUDITING. Синтаксис команды следующий:
proutil db-name –C disableauditing –userid audadm -password
В результате вы получите следующее сообщение:
Auditing was not fully disabled because auditing data tables are not empty. (13647) Auditing has been deactivated, no additional auditing records will be recorded. (13649)
Как видно из сообщения, OpenEdge Auditing был отключен не до конца. Это связано с тем, что в таблицах аудита _aud-audit-data и _aud-audit-data-value остались данные.
Для того чтобы окончательно выключить OpenEdge Auditing выполните следующие шаги:
- Поскольку мы только деактивировали работу механизма, для очистки его таблиц необходимо его заново включить. Выполните команду:
proutil db-name -C enableauditing
- С помощью утилиты PROUTIL с классификатором AUDITARCHIVE выгрузите оставшиеся данные аудита. Внимание, AUDITARCHIVE может удалить не все данные. В этом случае, для их удаления нужно использовать другие способы, например, программно с помощью ABL.
proutil sports -C auditarchive -userid audarc -password 123 Archive all the records prior to 2009/08/21@17:11:34.641+0400 . (13532) Archived 5 _Db-detail records. (13575) Archived 0 _Client-session records. (13576) Archived 95 _aud-event records. (13577) Archived 30 _aud-audit-data records, 29 was deleted. (13588) Archived 0 _aud-audit-data-value records, 0 was deleted. (13589) Audit archive complete. (13022)
После этого, подключитесь к базе данных под пользователем audarc (Audit data archiver) и выполните следующий ABL код:
for each _aud-audit-data-value exclusive-lock. delete _aud-audit-data-value end. for each _aud-audit-data exclusive-lock . delete _aud-audit-data. end.
Теперь таблицы аудита окончательно пусты.
- Как только таблицы будут очищены, выполните повторно команду DISABLEAUDITING под пользователем audadm (Audit Administrator).
proutil db-name -C disableauditing -userid audadm -password 123 Auditing has been disabled for database sports. (12490)
Восстановить работу OpenEdge Auditing вы можете, выполнив следующую команду:
proutil db-name -C enableauditing
Архивация
Аудит базы данных подразумевает генерацию большого количества данных за очень короткие периоды времени, что естественно, вызовет рост размеров вашей промышленной базы. Поэтому, имеет смысл периодически производить архивацию данных аудита. При этом созданные архивы можно всегда загрузить в копию промышленной базы данных, и активировать все имеющиеся индексы, чтобы обеспечить возможность получать более быстрый доступ к данным, чем на промышленной базе.
Описание процесса архивации
Выполнить архивацию данных аудита можно с помощью утилиты PROUTIL с классификатором AUDITARCHIVE. А загрузка архивных данных в специальную базу данных выполняется с помощью той же утилиты, но с использованием классификатора AUDITLOAD. Весь процесс архивации данных аудита схематически представлен на следующем рисунке:
Пользователи, которые будут выполнять выгрузку данных из промышленной базы, и их загрузку в архивную базу, должны иметь привилегию Audit Data Archiver.
Описание утилиты PROUTIL AUDITARCHIVE
Классификатор AUDITARCHIVE утилиты PROUTIL формирует бинарный файл, в который записывает данные аудита из промышленной базы данных. Архивируются данные из таблиц _aud-audit-data, _aud-audit-data-value, _db-detail, _client-session и _aud-event. Имя файла будет сформировано по маске db-name.abd, при этом, если в вашей системе установлены ограничения на размер файлов, то по их достижению будут созданы дополнительные файлы с именем db-nameN.abd, где N, это порядковый номер файла. Файл будет помечен временной меткой и MAC ключом базы данных, на момент формирования. После выгрузки, если не определено иное, все выгруженные данные будут удалены из базы. По умолчанию, файл архива пишется в текущий рабочий каталог. Если в этом каталоге будет обнаружен файл с таким же именем, например, оставшийся после предыдущей выгрузки, то AUDITARCHIVE запросит от вас подтверждение его перезаписи.
Архивация данных аудита, это подконтрольное событие аудита. Т.е. вы можете настроить соответствующий полис аудита, в результате чего, после каждой выгрузки факт выгрузки будет записаны в базу данных. При этом после выгрузки информация о выполнении архивации не удаляется из базы данных.
Выполнять архивацию данных аудита можно как в offline, так и в online. При этом, архивация может выполняться несколькими сессиями AUDITARCHIVE параллельно. Единственное условие для этого, это чтобы выходные файлы этих сессий располагались в разных каталогах. При этом во время загрузки таких файлов, AUDITLOAD будет игнорировать дубликаты записей, если таковые будут встречаться.
Синтаксис команды архивации следующий:
proutil db-name -C auditarchive [date-range] [-recs num-recs] [-nodelete] [-checkseal] [-directory directory-name] [-userid user-id [-password passwd] ]
В следующей таблице приведено описание параметров команды архивации.
Таблица 3 Параметры архивации данных аудита.
Параметр | Назначение |
db-name | Имя базы данных, данные аудита которой необходимо архивировать |
date-range | Архивация данных ограниченных периодом:Не определен – все данные аудита включаются в процесс архивации;Определена одна дата – архивируются все данные аудита с датой меньшей или равной указанной даты. |
Определены две даты, разделенные пробелом – Архивируются все данные между указанным периодом дат. Сначала нужно указать начало периода, а потом его окончание.
Параметр имеет следующий формат:
“mm-dd-yyyy hh:mm:ss.sss+hh:mm”.
Вы должны обязательно заключить даты в кавычки. Например, указание даты 5 часов 47 минут 8 апреля 2008 года по Алматинскому времени, будет выглядеть так: “04-08-2008 17:47:00.000-06:00”.-recs num-recsУказывается количество записей удаляемых в одной транзакции. AUDITARCHIVE запускает транзакцию на каждые num-recs записей для удаления. Значение по умолчанию равно 100, максимально возможное значение ограничено текущим значением Lock Table Entries (-L). В многопользовательском режиме, значение –L по умолчанию равно 8192.-nodeleteУказывает на то, что после копирования данных аудита, их не нужно удалять из исходной базы. Если параметр не определен, то после копирования, AUDITARCHIVE удалит записи из исходной базы данных.-checksealУказывает на то, что AUDITARCHIVE должен проверять штамп каждой записи аудиторских данных на соответствие MAC ключу базы данных, перед записью их в файл архива. Этот параметр требует, чтобы политикой безопасности перед записью аудиторских данных был определен Security Level of DB Passkey.-directory directory-nameОпределяет каталог, в который будет записан архив аудита. Если значение не будет определено, то файл будет создан в текущем рабочем каталоге.Если же вы просто хотите очистить данные аудита, без сохранения в архивный файл, то можно указать в качестве каталога выгрузки “/dev/null/”.-userid usernameОпределяется имя пользователя, имеющего право на выполнение архивации. Если вы используете таблицу _User, то пользователь должен быть там зарегистрирован, и параметр – userid в данном случае обязателен. Если вы не используете таблицу _User, то использование параметра может быть как дополнительная опция, и в этом случае пользователь будет определен на основании данных операционной системы. В любом случае, пользователь должен иметь права архиватора данных аудита, для работы с AUDITARCHIVE-password passwdУказывается пароль пользователя. Если используется таблица _User, то пароль должен соответствовать записи в этой таблице. Значение пароля может быть как в виде обычного текста, так и в зашифрованном виде. Если таблица _User не используется, а используется ID пользователя в операционной системе, то passwd должен быть зашифрован с помощью DB Pass key. Если вы не укажите пароль, то утилита сама предложит его ввести.
Описание утилиты PROUTIL AUDITLOAD
Загрузка данных из бинарного файла с данными аудита выполняется с помощью утилиты PROUTIL с классификатором AUDITLOAD. Если в процессе загрузки, по каким-либо причинам, утилитой будут обнаружены дубликаты записей, то эти дубликаты будут проигнорированы. Для выполнения загрузки, пользователь должен иметь привилегию Audit Data Archiver. Загрузка данных может выполняться как в online, так и в offline. При этом, несколько сессий AUDITLOAD могут выполняться параллельно.
Загрузка данных аудита является подконтрольным событием аудита. Поэтому, если вы настроите соответствующий полис аудита, то при каждом запуске AUDITLOAD будет генерироваться соответствующее события, и информация об этом будет записано в базу.
Общий синтаксис команды следующий:
proutil db-name -C auditload archive-file-name [-recs num-recs] [-checkseal] [-userid user-id [-password passwd] ]
Описание параметров команды приведено в следующей таблице:
Таблица 4 Параметры загрузки данных аудита
Параметр | Назначение |
db-name | Имя базы данных, в которую будет производиться загрузка |
archive-file-name | Имя загружаемого файла |
-recs num-recs | Указывается количество записей удаляемых в одной транзакции. AUDILOAD запускает транзакцию на каждые num-recs записей для загрузки. Значение по умолчанию равно 100, максимально возможное значение ограничено текущим значением Lock Table Entries (-L). В многопользовательском режиме, значение –L по умолчанию равно 8192. |
-checkseal | Перед загрузкой AUDITLOAD проверяет штамп каждой загружаемой записи на соответствие MAC ключу. Этот параметр требует, что бы политикой безопасности перед записью аудиторских данных был определен Security Level of DB Passkey. Перед началом загрузки записей, AUDITLOAD загружает данные в таблицу _db-detail, содержащие MAC ключ, для обеспечения этой проверки. |
-userid username | Определяется имя пользователя имеющего право выполнения загрузки. Если вы используете таблицу _User, то пользователь должен быть в ней зарегистрирован, и параметр –userid в данном случае обязателен. Если вы не используете таблицу _User, то использование параметра может быть как дополнительная опция, и в этом случае пользователь будет определен на основании данных операционной системы. В любом случае, пользователь должен иметь права архиватора данных аудита, для работы с AUDITLOAD. |
-password passwd | Указывается пароль пользователя. Если используется таблица _User, то пароль должен соответствовать записи в этой таблице. Значение пароля может быть как в виде обычного текста, так и в зашифрованном виде. Если таблица _User не используется, а используется ID пользователя в операционной системе, то passwd должен быть зашифрован с помощью DB Pass key. Если вы не укажите пароль, то утилита сама предложит его ввести. |
Метка:OpenEdge