Как пройти через пользователя веб-запроса к соединению sql на веб-сервисе - PullRequest
0 голосов
/ 30 октября 2019

У меня есть простой веб-сервис (C #, ASP.NET Core3), который предоставляет несколько сохраненных процедур в моей базе данных.

Веб-сайт работает с проверкой подлинности Windows (это приложение для внутренней сети), поэтому я знаю личность каждого пользователя, который вызывает метод службы, и знаю, что пользователь прошел проверку подлинности.

Теперь я хотел бы установить соединение между веб-сервисом и SQL, используя личность пользователя, который сделал веб-запрос. Я не хочу подключаться к базе данных как какой-то общий пользователь, который имеет супер-доступ к моей базе данных.

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

Возможно ли это вообще? Если кто-нибудь знает, на каких условиях я должен даже гуглить - я бы очень признателен за любые указания. Кажется, что все мои поиски до сих пор дают результаты, которые не соответствуют теме. Я предполагаю, что мне не хватает важных терминов для такого рода вещей - или это может быть просто невозможно ...

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

1 Ответ

0 голосов
/ 30 октября 2019

Вы должны использовать Trusted Connection в строке подключения (см. Что такое доверенное соединение? )

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

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

Тогда вы можете использовать SUSER_NAME(), SUSER_ID(), SUSER_SNAME(), SUSER_SID() в ваших запросах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...