Я что-то упускаю при попытке использовать мою хранимую процедуру EXECUTE AS
. Хранимая процедура считывает данные source_db
, объединяет их и сохраняет результат target_db
.
Сам SP находится в target_db
. У меня есть специальный логин и сопоставьте его пользователей как source_db
и target_db
для владельца зр ( в так что пользователь app_agent
в source_db
и target_db
для входа в систему app_agent
).
Если я войду как app_agent
и выполню
EXEC target_db.app_agent_schema.import_data
все отлично работает Но если я изменю
ALTER PROCEDURE app_agent_schema.import_data WITH EXECUTE AS OWNER` (or `AS SELF`)
и попробуйте выполнить его, он бросает
Участник сервера "app_agent" не может получить доступ к базе данных "source_db" в текущем контексте безопасности.
Я использую SQL Server 2008.
Может ли кто-нибудь указать на мою ошибку?
Благодарность
Обновление
После некоторых исследований я обнаружил, что это ALTER DATABASE target_db SET TRUSTWORTHY ON
решает проблему, но это не кажется мне правильным решением ...