Предложения по реализации таблиц аудита в SQL Server?

голоса
29

Один простой метод я использовал в прошлом, в основном, только создавая вторую таблицу, структура которой отражает один я для аудита, а затем создать обновление / удаление триггера на основной таблице. Перед тем, как запись обновляется / удаляется, текущее состояние сохраняется в таблице аудита с помощью триггера.

В то время как эффективные, данные в таблице аудита не является самым полезным или просто сообщить прочь. Я интересно, если кто имеет лучший метод для изменения аудита данных?

Там не должно быть слишком много обновлений этих записей, но это очень секретная информация, поэтому очень важно, чтобы клиенту, что все изменения проверяемого и легко сообщили о.

Задан 06/08/2008 в 19:39
источник пользователем
На других языках...                            


6 ответов

голоса
17

Сколько письма против чтения этой таблицы (ы) вы ожидаете?

Я использовал одну таблицу аудита, с колонками таблицы, колонки, OldValue, NewValue, User и ChangeDateTime - достаточно универсальный для работы с любыми другими изменениями в БД и в то время как много данных был написан к тому, что таблицы, отчеты по этим данным были достаточно редкими, что они могут быть запущены в периоды низкого использования в день.

Добавлено: Если объем данных , по сравнению отчетности является проблемой, таблица аудита может быть воспроизведена на сервер базы данных только для чтения, что позволяет запускать отчеты по мере необходимости без срывания главного сервера выполнять свою работу.

Ответил 06/08/2008 d 19:51
источник пользователем

голоса
6

Мы используем два дизайн таблицы для этого.

Одна таблица, содержащий данные о транзакции (базы данных, имя таблицы, схемы, столбец приложения, инициировавшего операцию, имя хоста для входа в систему, которая начала транзакции, дату, количество изменяемых строк и несколько больше).

Вторая таблица используется только для хранения данных изменений, так что мы можем отменить изменения при необходимости и сообщать о старых / новых значениях.

Другой вариант заключается в использовании стороннего инструмента для этого , таких как ApexSQL аудита или функции отслеживания измененных данных в SQL Server.

Ответил 10/05/2013 d 10:41
источник пользователем

голоса
2

Я нашел эти две ссылки полезны:

Использование CLR и одной таблицы аудита.
Создание универсального триггера аудита с SQL 2005 CLR

Использование триггеров и отдельная таблица аудита для каждой таблицы проверяемого.
Как аудит изменений данных SQL Server?

Ответил 01/09/2008 d 10:14
источник пользователем

голоса
1

Я использую подход , описанный Грег в своем ответе и заполнить таблицу аудита с хранимой процедурой , называемой из таблицы триггеров.

Ответил 06/08/2008 d 21:23
источник пользователем

голоса
1

OmniAudit может быть хорошим решением для вас нужно. Я никогда не использовал его раньше , потому что я очень счастлив писать свои собственные процедуры аудита, но это звучит хорошо.

Ответил 06/08/2008 d 20:56
источник пользователем

голоса
1

Существуют ли какие-либо встроенные пакеты аудита? Oracle имеет хороший пакет, который будет даже отправлять изменения аудита от на отдельный сервер за пределами доступа любого плохого парня, который вносит изменения в SQL.

Их пример является удивительным ... это показывает, как предупредить на кого модификации таблиц аудита.

Ответил 06/08/2008 d 19:49
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more