Как мы должны захватить пользователя базы данных при использовании структуры сущности на среднем уровне?

Мы разрабатываем уровень обслуживания для новой системы, которая будет обрабатывать все взаимодействия с базой данных MSSQL (2005). Мы немного озадачены тем, как фиксировать всю информацию о том, кто это сделал, который требуется нашим пользователям в некоторых наших предыдущих таблицах аудита. Хотя мы могли бы передавать имя пользователя, которое изменяло данные и регистрировало вызов, у нас есть некоторые устаревшие таблицы, которые мы будем использовать, у которых есть триггеры для захвата system_user при вставках, обновлениях и удалениях записей. Мы также привлекаем некоторые уровни безопасности на некоторых уровнях, которые мы также хотели бы использовать без изменения кода, если это возможно. Я прочитал, что некоторые из них используют contextinfo для хранения пользователя, но в этой ситуации это кажется немного менее безопасным.

Опция, которая мне больше всего нравится, – это использовать выполнение как пользователя на основе каждого вызова процедуры

execute sp_myproc @foo as user = 'username' 

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

Спасибо за любой вклад.

«EXECUTE AS» не поддерживает вызовы процедур (это было бы в фактическом определении proc). Только удаленный или динамический SQL.

Опции:

  • Любой средний уровень должен передать конечного пользователя в качестве параметра. Мы делаем это для наших веб-сервисов и графических интерфейсов, где нет прямого подключения к базе данных

  • Включите делегирование сервера, чтобы каждый сервер мог проходить через учетные данные конечного пользователя. В основном «олицетворение» в asp.net.

  • Выполните отдельную команду сначала

Дуга,

Я предполагаю, что средний уровень в другой системе, и что вам нужна информация о пользователе в базе данных (т. Е. Не в середине уровня). Если это неверно, сообщите мне.

Если вы используете проверку подлинности Windows, вам необходимо настроить делегирование. Это позволит вам олицетворять конечного пользователя в базе данных. Используете ли вы проверку подлинности Windows?

Erick

  • Функции имени пользователя SQL Server
  • Настройка пользователя в моей базе данных на моем SQL Server
  • Получить разрешения для хранимой процедуры в SQL Server 2005
  • Создание пользователя SQL Server с разрешением на чтение одного представления и ничего другого - но он может видеть системные представления и процедуры?
  • Защита базы данных SQL Server 2008R2
  • Лучший способ сохранить пароль базы данных в файле сценария запуска / файла конфигурации?
  • EncryptByKey против EncryptByPassPhrase?
  • Как добавить группу пользователей Active Directory в качестве входа в SQL Server
  • Разрешение SELECT было отклонено на объекте
  • повышение безопасности на веб-сайте автоматизации ASP.NET
  • Хеширование пользовательских паролей при использовании HTTPS
  • Interesting Posts

    Время выполнения медленнее с каждой итерацией того же SPROC

    Возврат по ISNULL десятичной "0,00"

    Есть ли способ получить список всех текущих временных таблиц в SQL Server?

    Разделите строку с несколькими разделителями на 3 части

    Является ли IN и NOT IN взаимоисключающим?

    Перенос с MySql на сервер Sql 2008

    Запрос SQL «LIKE» с использованием «%», где критерии поиска содержат «%»,

    Преобразование текстового блока в nvarchar из Firebird в SQL Server

    Как создать соединение sql-сервера в мобильном издателе отчетов

    В MSSQL Server 2008 и более поздних, какие-либо существенные различия между «sp_addlinkedserver» и использованием зарегистрированных серверов?

    Какой инструмент генерирует диаграммы из иерархических данных SQL Server?

    Как удалить пустые строки из набора результатов SQL

    Как выбрать строки для столбцов в SQL Server

    Как я могу использовать CASE-WHEN для установки столбца с нулевым значением как 0?

    Ошибки, восстанавливающие базу данных Sql Server 2008 с репликацией слиянием

    Давайте будем гением компьютера.