มีฟังก์ชั่นที่ส่งคืน WINDOWS USER (ไม่ใช่ผู้ใช้ฐานข้อมูล!) ภายในขั้นตอน "EXECUTE AS OWNER" หรือไม่?
ORIGINAL_LOGIN() จะทำสิ่งนี้หรือส่งคืนเฉพาะผู้ใช้ฐานข้อมูลเท่านั้น
พิจารณาสถานการณ์ต่อไปนี้:
- ผู้ใช้ Windows "joe" และ "anne" เป็นส่วนหนึ่งของกลุ่ม Active Directory เช่น "นักวางแผน"
- ฐานข้อมูลเซิร์ฟเวอร์ SQL มี "PLANNERS" เป็นการเข้าสู่ระบบเซิร์ฟเวอร์และเป็นผู้ใช้ฐานข้อมูล
- มีขั้นตอนการจัดเก็บไว้โดยมีการดำเนินการในฐานะเจ้าของ
ตอนนี้แอนน์กำลังเข้าสู่ฐานข้อมูล SQL ผ่านทาง Windows Authentification (ดังนั้นเธอจึงเป็นผู้ใช้ฐานข้อมูล "PLANNERS") และเธอก็เรียกขั้นตอนนี้ ในขั้นตอนนี้ ฉันต้องการดึงข้อมูลผู้ใช้ Windows ("anne")
ORIGINAL_LOGIN returns the identity of the login that first connected to the instance of SQL Server in that session
ดังนั้นนี่คือสิ่งที่คุณต้องการ msdn.microsoft.com/en-us/library/ms189492(v=sql.100).aspx - person deterministicFail   schedule 13.08.2014