Saklı yordam kullanmak için çalışırken bir şey eksik EXECUTE AS
. Saklı yordam, verileri okur source_db
, toplar ve sonucu saklar target_db
.
Sp'nin kendisi target_db
. Ben özel bir giriş yaparlar ve hem de kullanıcılara harita source_db
ve target_db
SP'nin sahibi için (yani kullanıcı app_agent
içinde source_db
ve target_db
giriş için app_agent
).
Olarak giriş yapar app_agent
ve yürütürsem
EXEC target_db.app_agent_schema.import_data
her şey iyi çalışıyor. Ama değiştirirsem
ALTER PROCEDURE app_agent_schema.import_data WITH EXECUTE AS OWNER` (or `AS SELF`)
ve çalıştırmayı deneyin,
"App_agent" sunucusu asıl adı, geçerli güvenlik bağlamı altında "source_db" veritabanına erişemiyor.
SQL Server 2008 kullanıyorum.
Birisi benim hatamı gösterebilir mi?
Teşekkürler
Güncelleme
Biraz araştırma yaptıktan sonra ALTER DATABASE target_db SET TRUSTWORTHY ON
, sorunu çözdüğümü fark ettim , ama bu benim için doğru çözüm gibi görünmüyor ...