Базы данных Oracle - статьи

         

Системные журналы


Вышеприведенные варианты не будут работать, если владелец программного обеспечения сервера базы данных, обычно пользователь "oracle", решит удалить все записи в этих файлах XML-аудита. Чтобы дополнительно защитить их, вы можете использовать утилиту (систему) syslog. Эта система записывает сообщения в специальный файл, принадлежащий привилегированному пользователю ОС (пользователь "root"), поэтому никакой другой пользователь не сможет удалить его. Вы можете установить параметры инициализации так, чтобы журнал аудита записывался системой syslog:

AUDIT_TRAIL=OS AUDIT_SYSLOG_LEVEL=USER.ALERT

Теперь после перезапуска экземпляра сервера базы данных все записи аудита будут записываться системой syslog в соответствии с установленным средством (источником сообщений) – facility – (kernel (ядро ОС), user (пользовательские процессы) и так далее) и определенным уровнем серьезности сообщений – level – (таким, как notice (необычные состояния), warning (предупреждения), err (состояния ошибок) и так далее). Вторая строка показанного выше кода указывает, что записи аудита записываются с установленными средством user и уровнем alert (срочные ситуации). Если вы не укажете ничего больше, то эти записи аудита будут поступать в файл сообщений сервера по умолчанию – обычно в сервере Linux это файл /var/log/messages. Однако в этот файл поступают все сообщения, включая и сообщения самой ОС, поэтому вы можете создать другой файл только для целей аудита, скажем, audit.log. Укажите местоположение этого файла для данного средства в конфигурационном файле системы syslog, обычно находящимся в/etc/syslog.conf:

user.alert /var/log/audit.log

Эта строка указывает, что сообщения средства user на уровне alert должны поступать в файл /var/log/audit.log. Теперь перезапустите процесс системы syslog. Фактическая команда зависит от системы, ваш системный администратор должен применять правильную команду. В ОС UNIX как пользователь "root" выполните команду:

/etc/init.d/syslog restart

Она перезапустит процесс системы syslog, который будет писать сообщения средства user на уровне alert в файл /var/log/audit.log file. После этого, когда пользователь выполнит запрос к таблице ACCOUNTS, в этом файле появится следующая строка:

Oct 13 01:26:55 oradba Oracle Audit[28955]: SESSIONID: "25386" ENTRYID: "1" STATEMENT: "8" USERID: "SCOTT" USERHOST: "prolin1" TERMINAL: "pts/2" ACTION: "103" RETURNCODE: "0" OBJ$CREATOR: "ARUP" OBJ$NAME: "ACCOUNTS" SES$ACTIONS: "---------S------" SES$TID: "76564" OS$USERID: "oracle"

К сожалению, она не в XML-формате, но действия вполне понятны. Этот файл принадлежит пользователю root, поэтому пользователь oracle не сможет удалить или изменить его, что обеспечивает очень хорошую защиту.



Содержание раздела