Выполните хранимую процедуру как другие полномочия пользователя

Я столкнулся со следующей проблемой: существует пользователь, который должен выполнить хранимую процедуру (spTest). В теле spTest называют sp_trace_generateevent. sp_trace_generateevent требует, изменяют полномочия трассировки, и я не хочу, чтобы у пользователя был он. Таким образом, я хотел бы, чтобы пользователь смог выполнить spTest. Как я могу сделать это?

20
задан Peter Mortensen 20 February 2018 в 22:34
поделиться

3 ответа

Попробуйте следующее:

EXECUTE AS user = 'special_user'

EXECUTE YourProcerdure

REVERT

посмотрите это:
Общие сведения о переключении контекста <<< есть примеры того, что вы пытаетесь сделать
Общие сведения о контексте выполнения
Предложение EXECUTE AS (Transact-SQL)
EXECUTE AS (Transact-SQL)

29
ответ дан 30 November 2019 в 00:27
поделиться

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

-1
ответ дан 30 November 2019 в 00:27
поделиться

Как предлагали другие, вы можете добиться желаемого с помощью предложения Execute As. Примеры вариантов реализации см. В электронной документации для пункта Execute As .

Для дальнейшего чтения и более глубокого понимания этой темы, то, чего вы хотите достичь, подпадают под концепцию безопасности Переключение контекста .

3
ответ дан 30 November 2019 в 00:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: