Me falta algo al intentar utilizar mi procedimiento almacenado EXECUTE AS. El procedimiento almacenado lee datos source_db, los agrega y almacena los resultados target_db.
El sp en sí está adentro target_db. Tengo un inicio de sesión dedicado y lo asigno a los usuarios en ambos source_dby target_dbpara el propietario de sp (por lo que hay un usuario app_agenten source_dby target_dbpara iniciar sesión app_agent).
Si inicio sesión como app_agenty ejecuto
EXEC target_db.app_agent_schema.import_data
Todo funciona bien. Pero si cambio
ALTER PROCEDURE app_agent_schema.import_data WITH EXECUTE AS OWNER` (or `AS SELF`)
e intenta ejecutarlo, arroja
El servidor principal "app_agent" no puede acceder a la base de datos "source_db" en el contexto de seguridad actual.
Estoy usando SQL Server 2008.
¿Alguien podría señalar mi error?
Gracias
Actualización
Después de investigar un poco, descubrí que ALTER DATABASE target_db SET TRUSTWORTHY ONresuelve el problema, pero eso no me parece la solución correcta ...