AUDIT в Oracle SQL. Введение
AUDIT в Oracle SQL используется для включения журналирования действий пользователей. Это мощный механизм безопасности, который позволяет отслеживать:
Кто выполнил тот или иной SQL-запрос
Когда был доступ к таблице или схеме
Какие объекты были изменены или просмотрены
Функция AUDIT особенно полезна в системах, где важна прозрачность и контроль доступа — например, в банках, госпредприятиях, юридических базах.
🔤 Написание
🔄 Где используется
Для отслеживания действий (SELECT, INSERT, UPDATE, DELETE)
При доступе к определённым таблицам или представлениям
Для журналирования DDL-операций (CREATE, DROP, ALTER)
В рамках политик безопасности и соответствия стандартам (например, GDPR, SOX)
Для ведения аудита в административных и финансовых системах
🧪 10 Примеров использования AUDIT
1️⃣ Аудит всех SELECT-запросов по таблице
Oracle будет логировать каждый SELECT по таблице employees.
2️⃣ Аудит только успешных попыток удаления
Фиксируются только успешные удалённые строки.
3️⃣ Аудит операций только для конкретного пользователя
Журналируется, если пользователь hr вставляет строки в таблицу salaries.
4️⃣ Аудит всех DDL-операций в схеме
Фиксирует CREATE, DROP, TRUNCATE и другие действия с таблицами.
5️⃣ Аудит входов в базу данных
Журналируются все логины (успешные и неуспешные).
6️⃣ Аудит выполнения SQL через PL/SQL
Журналируется вызов хранимых процедур пользователем hr.
7️⃣ Проверка включённого аудита
Выводит настройки аудита по конкретной таблице.
8️⃣ Просмотр зафиксированных действий
История действий по пользователю и типу действия.
9️⃣ Отключение аудита
Отключает аудит SELECT для таблицы employees.
🔟 Удаление аудиторских записей (опционально)
Очистка журнала (если разрешено политикой безопасности).
🧩 Заключение
Оператор AUDIT в Oracle SQL — это мощный инструмент для контроля и прозрачности, позволяющий отслеживать любые действия пользователей и DML/DDL-операции. Он необходим для:
Обеспечения безопасности
Соответствия внешним стандартам
Расследования инцидентов и анализа истории действий
💡 Важно:
Аудит должен быть включён системно (
AUDIT_TRAILпараметр вinit.ora)Логи хранятся в системной таблице
AUD$Избыточный аудит может замедлить БД — применяйте выборочно