Я что-то упускаю при попытке использовать мою хранимую процедуру 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решает проблему, но это не кажется мне правильным решением ...