Приложение для отслеживания операций с базой данных. Необходимо провести аудит изменений, внесенных в БД - PullRequest
0 голосов
/ 30 января 2020

Мне нужно создать приложение в. Net, которое будет отслеживать изменения данных во всех таблицах в БД без использования Триггеры .

У меня есть некоторые идеи, которые могут быть реализованным для достижения того же. Нужны некоторые предложения от вас, ребята.

  1. Поскольку все операции будут присутствовать в fn_dblog таблице на Sql Сервер, я должен читать их на в имени таблицы.
  2. Пока запускается любая команда DML , мне нужно получить новые и предыдущие данные на основе первичного ключа и сохранить их в другой таблице, которая будет моей AuditingTable.

Еще какие-либо предложения, пожалуйста, просветите меня и предложите мне, которая будет хорошей и эффективной идеей для такого рода приложений. Я использую Sql Server в качестве базы данных, и мое приложение будет в. Net framework.

1 Ответ

0 голосов
/ 30 января 2020

Я бы предложил вам использовать встроенную функциональность: Изменить захват данных

Изменить запись ввода данных, вставлять, обновлять и удалять действия, которые применяются к SQL Серверная таблица. Это делает детали изменений доступными в легко используемом реляционном формате. Информация о столбцах и метаданные, необходимые для применения изменений в целевой среде, собираются для измененных строк и сохраняются в таблицах изменений, которые отражают структуру столбцов отслеживаемых исходных таблиц. Табличные функции предназначены для обеспечения систематического c доступа потребителей к данным изменений.

Это имеет множество преимуществ:

  1. Считывает из журнала транзакций. и он не участвует в фактической транзакции

    Источником данных изменений для сбора данных изменений является SQL Журнал транзакций сервера. Поскольку вставки, обновления и удаления применяются к отслеживаемым исходным таблицам, записи, описывающие эти изменения, добавляются в журнал.

  2. Вы можете включить его для каждой таблицы. Это означает, что, поскольку не все таблицы подлежат изменению (т. Е. Таблицы поиска), вам не нужно хранить строки, подобные этой.
  3. Вы можете указать, как долго вы хотите хранить историю этих таблиц.
...