Prova questo:
EXECUTE AS user = 'special_user'
EXECUTE YourProcerdure
REVERT
guarda questi:
Capire il cambio di contesto
<<<has examples of things like you are trying to do
Comprendere il contesto di esecuzione
Clausola EXECUTE AS (Transact-SQL)
ESEGUI COME (Transact-SQL)