Можете ли вы запустить хранимую процедуру SQL Server, используя имя входа в эту процедуру - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть хранимая процедура, которая требует использования функции xp_dirtree.В настоящее время эта функция работает только при запуске нашей учетной записью SA, поскольку для чтения файловой системы сервера требуются дополнительные разрешения.

Я хочу получить ее для запуска программы VB.Net, но по понятным причинам я этого не делаю.хотите поместить данные для входа в SA в строку подключения SQL Server.У нас есть другие учетные записи, которые мы используем для доступа к данным из наших программ.

Мой вопрос: есть ли в коде хранимой процедуры в SQL Server способ выполнить этот код примерно так:

Run AS: Login:'SA';Password:'xxxxxxx'

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

С уважением

Мэтт

1 Ответ

0 голосов
/ 22 ноября 2018

Использование Execute As

CREATE PROCEDURE dbo.usp_Demo  
    WITH EXECUTE AS 'SA'  
    AS  
    SELECT user_name(); -- Shows execution context is set to SA.  
    EXECUTE AS CALLER;  
    SELECT user_name(); -- Shows execution context is set to the caller of the module.  
    REVERT;  
    SELECT user_name(); -- Shows execution context is set to SA.  
GO  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...