EXECUTE ASฉันหายไปบางสิ่งบางอย่างในขณะที่พยายามที่จะทำให้การใช้งานขั้นตอนของฉันเก็บไว้ ขั้นตอนการจัดเก็บไว้อ่านข้อมูลจากมวลรวมและส่งผลให้ร้านค้าsource_dbtarget_db
ตัว sp อยู่target_dbค่ะ ฉันมีการเข้าสู่ระบบโดยเฉพาะและแมปกับผู้ใช้ทั้งในsource_dbและtarget_dbสำหรับเจ้าของของ sp (ดังนั้นจึงมีผู้ใช้app_agentในsource_dbและในtarget_dbการเข้าสู่ระบบapp_agent)
หากฉันเข้าสู่ระบบในฐานะapp_agentและดำเนินการ
EXEC target_db.app_agent_schema.import_data
ทุกอย่างทำงานได้ดี แต่ถ้าฉันเปลี่ยน
ALTER PROCEDURE app_agent_schema.import_data WITH EXECUTE AS OWNER` (or `AS SELF`)
และลองใช้งานมันมันจะพ่น
เซิร์ฟเวอร์หลัก "app_agent" ไม่สามารถเข้าถึงฐานข้อมูล "source_db" ภายใต้บริบทความปลอดภัยปัจจุบัน
ฉันใช้ SQL Server 2008
ใครช่วยชี้ให้เห็นข้อผิดพลาดของฉัน?
ขอบคุณ
อัปเดต
หลังจากทำวิจัยบางอย่างฉันพบว่าการALTER DATABASE target_db SET TRUSTWORTHY ONแก้ปัญหา แต่ดูเหมือนจะไม่ใช่วิธีที่เหมาะสมสำหรับฉัน ...