Je manque quelque chose en essayant d'utiliser ma procédure stockée EXECUTE AS
. La procédure stockée lit les données source_db
, les agrège et stocke le résultat target_db
.
Le sp lui-même est dedans target_db
. J'ai une connexion dédiée et la mappe aux utilisateurs à la fois source_db
et target_db
pour le propriétaire de sp (donc il y a un utilisateur app_agent
dans source_db
et target_db
pour la connexion app_agent
).
Si je me connecte en tant que app_agent
et que j'exécute
EXEC target_db.app_agent_schema.import_data
tout fonctionne bien. Mais si je change
ALTER PROCEDURE app_agent_schema.import_data WITH EXECUTE AS OWNER` (or `AS SELF`)
et essayez de l'exécuter, il lance
Le principal du serveur "app_agent" n'est pas en mesure d'accéder à la base de données "source_db" dans le contexte de sécurité actuel.
J'utilise SQL Server 2008.
Quelqu'un pourrait-il signaler mon erreur?
Merci
Mise à jour
Après avoir fait quelques recherches, j'ai trouvé que cela ALTER DATABASE target_db SET TRUSTWORTHY ON
résout le problème, mais cela ne semble pas être la bonne solution pour moi ...