Mi manca qualcosa durante il tentativo di utilizzare la mia stored procedure EXECUTE AS
. La procedura memorizzata sta leggendo i dati source_db
, li aggrega e memorizza i risultati target_db
.
Lo sp stesso è dentro target_db
. Ho un accesso dedicato e sulla mappa per gli utenti sia in source_db
e target_db
per il proprietario di sp (per cui v'è un utente app_agent
in source_db
e target_db
per il loginapp_agent
).
Se accedo come app_agent
, ed eseguo
EXEC target_db.app_agent_schema.import_data
tutto funziona bene. Ma se cambio
ALTER PROCEDURE app_agent_schema.import_data WITH EXECUTE AS OWNER` (or `AS SELF`)
e prova a eseguirlo, lancia
L'entità server "app_agent" non è in grado di accedere al database "source_db" nel contesto di sicurezza corrente.
Sto usando SQL Server 2008.
Qualcuno potrebbe segnalare il mio errore?
Grazie
Aggiornamento
Dopo aver fatto qualche ricerca, ho scoperto che ALTER DATABASE target_db SET TRUSTWORTHY ON
risolve il problema, ma non sembra la soluzione giusta per me ...