Вопрос

База данных отслеживает все изменения с помощью механизма захвата данных «).Мне нужно добавить дополнительную информацию о пользователях, которые делают эти изменения. Следующие пользователи не пользователи SQL Server.Авторизация безопасности выполняется через внешний механизм.

Я хочу добавить вспомогательную таблицу с столбцами " start_lsn " и " userId " Чтобы связать транзакцию с авторизованным пользователем. Есть ли способ определить значение « start_lsn

Это было полезно?

Решение

В настоящее время я нашел следующее решение:

1)

    .
  • Создать еще одну таблицу (например, useractivity "), которая имеет " ID " и " usid " столбцы;

  • Используйте столбец «ID» в качестве основного ключа;

  • Включить вариант CDC для этой таблицы.

2)

    .
  • Оберните все операции модификации данных с помощью Transaction Case ;

  • Добавьте новую запись данных в эту таблицу с текущим "userid" во время определенной транзакции:

      .
    • Начните <сильные> эксклюзивные транзакции;

    • Выполните "манипулирование данными";

    • Вставьте информацию о «UserID» в таблицу ".

Поскольку транзакция является эксклюзивным, и все операции были выполнены в пределах одной области транзакции, "last_lsn" ( "start_lsn" ) значение одинаково.

После этого, используя оператор Join, объединить данные из таблицы "UserActivity" с информацией о манипулировании данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top