Estou faltando alguma coisa ao tentar usar o meu procedimento armazenado EXECUTE AS. O procedimento armazenado está lendo dados source_db, agrega-os e armazena o resultado target_db.
O SP está em target_db. Eu tenho um login dedicado e mapeio-o para usuários do proprietário source_dbe target_dbdo sp (para que exista um usuário app_agentdentro source_dbe dentro target_dbdo login app_agent).
Se eu app_agentefetuar login como e executar
EXEC target_db.app_agent_schema.import_data
tudo funciona bem. Mas se eu mudar
ALTER PROCEDURE app_agent_schema.import_data WITH EXECUTE AS OWNER` (or `AS SELF`)
e tente executá-lo, ele lança
O principal do servidor "app_agent" não pode acessar o banco de dados "source_db" no contexto de segurança atual.
Estou usando o SQL Server 2008.
Alguém poderia apontar o meu erro?
obrigado
Atualizar
Depois de fazer algumas pesquisas, descobri que ALTER DATABASE target_db SET TRUSTWORTHY ONresolve o problema, mas isso não parece a solução certa para mim ...