Saya kehilangan sesuatu saat mencoba menggunakan prosedur tersimpan saya EXECUTE AS. Prosedur tersimpan adalah membaca data dari source_db, mengumpulkannya dan menyimpan hasilnyatarget_db .
SP itu sendiri ada di target_db. Saya memiliki login khusus dan memetakannya untuk pengguna di kedua source_dbdan target_dbuntuk pemilik sp (jadi ada pengguna app_agentmasuk source_dbdan target_dbmasuk untuk masukapp_agent ).
Jika saya login sebagai app_agent, dan jalankan
EXEC target_db.app_agent_schema.import_data
semuanya bekerja dengan baik. Tetapi jika saya berubah
ALTER PROCEDURE app_agent_schema.import_data WITH EXECUTE AS OWNER` (or `AS SELF`)
dan coba jalankan, itu melempar
Server utama "app_agent" tidak dapat mengakses database "source_db" di bawah konteks keamanan saat ini.
Saya menggunakan SQL Server 2008.
Bisakah seseorang menunjukkan kesalahan saya?
Terima kasih
Pembaruan
Setelah melakukan beberapa penelitian, saya menemukan bahwa ALTER DATABASE target_db SET TRUSTWORTHY ONmenyelesaikan masalah, tetapi itu sepertinya bukan solusi yang tepat bagi saya ...