Как правило, лучше всего установить базу данных, в которой у вас есть доступ ко всему (DBA
, SYSDBA
и c.) Затем вы можете просто просмотреть документацию и попробовать все. Вы получите доверие своих администраторов баз данных намного быстрее, если они заметят, что вы знаете, о чем говорите. Например, здесь или здесь .
На ваш вопрос: Аудит можно полностью отключить для базы данных, но это редко. Если он включен, вам необходимо включить его для всей схемы или для отдельных объектов, таких как таблицы. Ограничение доступа для чтения к DBA_AUDIT_TRAIL
является хорошей практикой, так как там, вероятно, есть данные, которые необходимо защитить (например, личные входы и т. Д. c).
Во-вторых, нужно быть очень осторожным с количество данных, которые будут сгенерированы при включении аудита для таблицы. Мои администраторы баз данных включают его только на короткий период времени и снова выключают, чтобы проверить, сколько данных было сгенерировано.
Представление, ограничивающее данные, - отличная идея, вы должны работать вместе с администраторами баз данных, чтобы создать его. для тебя.
РЕДАКТИРОВАТЬ: Очевидно, и пример в порядке. Потребовалось время, так как мне пришлось включить аудит, который по умолчанию отключен для бродячих ящиков Oracle.
Как вы предлагаете, администратор базы данных может создать AS SYSDBA
представление поверх DBA_AUDIT_TRAIL, отфильтровывая указывает c OWNER
, или текущий подключенный сеанс (чтобы каждый пользователь мог видеть действия аудита в своих собственных таблицах):
CREATE OR REPLACE VIEW USER_AUDIT_TRAIL
AS
SELECT *
FROM DBA_AUDIT_TRAIL
WHERE username = SYS_CONTEXT('USERENV','SESSION_USER');
Доступ к этому представлению может быть предоставлен вам или для всех пользователей:
CREATE PUBLIC SYNONYM USER_AUDIT_TRAIL FOR SYS.USER_AUDIT_TRAIL;
GRANT SELECT ON USER_AUDIT_TRAIL TO PUBLIC;
Пожалуйста, поговорите с администраторами баз данных, они могут захотеть исключить некоторые столбцы и строки представления из публикации c.