Выполнение хранимых процедур Azure SQL при входе в систему пользователя AAD - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь подключиться к базе данных SQL в Azure из веб-приложения таким образом, что зарегистрированный в данный момент пользователь Azure AD передается в базу данных, и хранимые процедуры выполняются указанным пользователем, а не общим Пользователь SQL (что мы обычно делаем).

Наша цель - использовать в наших хранимых процедурах что-то вроде current_user или system_user, чтобы возвращать только те строки, к которым у пользователя есть определенный доступ. Таким образом, хранимая процедура не должна полагаться на то, что логика кода запрашивает только то, к чему должен иметь доступ зарегистрированный пользователь.

Возможно ли это?

Похоже, что строка соединения «ADO.NET (встроенная проверка подлинности Active Directory) - частная конечная точка», перечисленная в Azure, может быть тем, что мне нужно:

Server=tcp:mydbserver.database.windows.net,1433;Initial Catalog=mydbname;Persist Security Info=False;User ID={your_username};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Authentication="Active Directory Integrated"; 

Я не хочу аутентифицироваться как определенный пользователь, я хочу аутентифицироваться как пользователь, в данный момент вошедший в систему , поэтому я удалил свойство username из строки. Итак, моя последняя строка подключения выглядит так:

Server=tcp:mydbserver.database.windows.net,1433;Initial Catalog=mydbname;Persist Security Info=False;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Authentication="Active Directory Integrated"; 

Однако попытка подключиться таким образом выдает исключение:

AdalException: формат указанного доменного имени недействителен.

Что я делаю не так?

...