Передача расширенного параметра в строку подключения Sql 2008 - PullRequest
0 голосов
/ 30 апреля 2010

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

Однако мне нужно практически записать снимок каждого изменения, которое происходит в БД. Итак, я подумал, что я должен использовать триггеры. Но затем мне нужен идентификатор пользователя для конкретного пользователя (не идентификатор пользователя строки подключения), чтобы проникнуть в базу данных.

В оракуле я должен был установить ПРОКСИ-ПОЛЬЗОВАТЕЛЯ, и триггер мог бы поднять это. В последний раз я проверял, что в Sql Server отсутствует концепция прокси-пользователя.

Кто-нибудь знает, есть ли какое-либо свойство extender, которое я могу использовать для прохождения через мое аутентифицированное имя пользователя?

ps: я не против воздействия на пул соединений (если есть).

Спасибо. P

Ответы [ 2 ]

2 голосов
/ 30 апреля 2010

Я не пробовал этого, но из параметров в строке подключения эти два (возможно, больше) можно получить в T-SQL: APP_NAME () и HOST_NAME () .

0 голосов
/ 30 апреля 2010

Я решил эту проблему, связав @@ SPID с текущим идентификатором пользователя.

Вам нужна таблица со структурой SPID int, UserID int и SP с теми же параметрами. SP удаляет запись с SPID, если она существует, и вставляет новую пару.

В триггере вы можете получить идентификатор пользователя, запросив эту таблицу с помощью @@ SPID.

SP должен вызываться при каждом открытии соединения. (вы не упомянули, как вы хотите получить доступ к БД)

...