Поставили передо мной задачу настроить аудит событий в субд oracle. Сообщения аудита должны собираться в базе, откуда же их будет забирать специализированное ПО Cisco MARS. Ну и ладно. Итак, для начала логинимся:
server$ sqlplus sys as sysdba
и создаем представление (view):
SQL> @$ORACLE_HOME/rdbms/admin/cataudit.sql
Теперь необходимо включить аудит, т.е. задать инициализационный параметр базы данных. Параметры инициализации содержатся в PFILE или SPFILE, первый — простой текстовый, а второй файл хранится в бинарном виде. Файлы параметров по умолчанию находятся в $ORACLE_HOME/dbs, и имеют вид:
- spfile$ORACLE_SID.ora
- spfile.ora
- init$ORACLE_SID.ora
Первые два это SPFILE, последний это PFILE. Способ включения аудита зависит от того использует ли субд файл параметров инициализации PFILE или SPFILE. Проверить это можно следующим образом:
SQL> select decode(value, null, 'PFILE', 'SPFILE') from sys.v_$parameter WHERE name = 'spfile';
При использовании PFILE, для включения аудита необходимо прописать параметры в инициализационном файле:
AUDIT_TRAIL=DB
AUDIT_SYS_OPERATIONS=true
Первый параметр включает аудит, а второй включает логирование действий пользователей с привилегиями SYSDBA или SYSOPER.
При использовании SPFILE достаточно в консоли выполнить:
SQL> alter system set audit_trail=db scope=spfile;
SQL> alter system set audit_sys_operations=true scope=spfile;
Для активации системы аудита базу необходимо перегрузить:
SQL> shutdown immediate;
SQL> startup;
Теперь можно включить логирование событий, к примеру: включить логирование изменений параметров системы, логирование сессий.
SQL> audit alter system;
SQL> audit session;
Можно включить логирование действий определенного пользователя:
SQL> audit all by some_user;
Для того что бы забирать данные аудита надо завести пользователя, который будет иметь права на выборку из представления dba_audit_trail и право на создание сессии.
SQL> create user audit_user identified by password default tablespace users;
SQL> grant select on dba_audit_trail to audit_user;
SQL> grant create session to audit_user;
Для проверки работоспособности можно зайти только что созданным пользователем и сделать выборку сообщений аудита:
$ sqlplus audit_user/<password>
SQL> select count(*) from dba_audit_trail;
COUNT(*)
----------
3
Если счетчик отличен от ноля, значит все работает верно.
Перейдем к настройке Cisco MARS, все довольно просто и легко выполняется через web интерфейс. Необходимо указать в настройках подключения имя и пароль нами созданного пользователя и "Oracle Service Name ". Под "Oracle Service Name " подразумевается GLOBAL_DBNAME которое можно посмотреть в файле настроек листенера listener.ora .
Необходимо отметить, что периодически табличное пространство аудита нужно чистить:
SQL> delete from sys.aud$;
Комментариев нет:
Отправить комментарий