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_db
e target_db
do sp (para que exista um usuário app_agent
dentro source_db
e dentro target_db
do login app_agent
).
Se eu app_agent
efetuar 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 ON
resolve o problema, mas isso não parece a solução certa para mim ...