Подтвердить что ты не робот

Ведение журнала Oracle SQL Query

Я использую Oracle 11g Standard Edition.

Я хотел бы записать все SQL-запросы, которые выполняются пользователями, в таблицу.

Как это можно сделать?

4b9b3361

Ответ 1

Если вы используете современную версию базы данных (9i или новее), и у вас есть лицензия Enterprise Edition, вы можете использовать Fine-Graining Auditing. Это позволяет нам проверять пользовательские запросы на очень низком уровне детализации посредством определенных политик.

Чтобы захватить текст SQL и привязать переменные, вам необходимо установить параметр AUDIT_TRAIL соответствующим образом при добавлении политики FGA. Узнайте больше.


"Я использую стандарт 11g, поэтому функции аудита не поддерживаются".

Не совсем. Команда AUDIT является частью стандартной сборки Oracle, но она позволяет нам захватывать, когда данный пользователь выдает SELECT по данной таблице. Но, да, чтобы узнать, что именно они выбирают, требуется лицензия Enterprise Edition.

Также нет триггера ON SELECT, поэтому мы не можем свернуть его.


"Так можно ли использовать команду AUDIT в стандартной версии?... Но тогда консультант сказал мне, что я не могу использовать его, не платя предприятие лицензия?"

Говоря как консультант, я должен сказать, что эти парни не всегда знают, о чем они говорят.

Итак, давайте ясно:

  • команда AUDIT является частью Oracle SQL. Он может использоваться в стандартной версии. Фактически с 11g он включен по умолчанию. Он проверяет общую деятельность. Узнайте больше.
  • Fine Grained Auditing - это PL/SQL-пакет, который можно использовать только в том случае, если у вас есть Enterprise Edition. Это позволяет нам проводить аудит активности пользователей на очень низком уровне. Узнайте больше.

Ответ 2

Для БЫСТРОГО, ЛЕГКОГО ведения журнала SQL, попробуйте мой ответ на мониторинг здесь. Не для долгосрочного ведения журнала, но отлично работает, чтобы увидеть, что происходит в маленьком временном окне.: -)