1
ความแตกต่างระหว่าง EXECUTE AS USER และ EXECUTE AS LOGIN ที่ทำให้อันที่สองทำงานโดยไม่คาดหมายคืออะไร
เมื่อเร็ว ๆ นี้ฉันใช้ EXECUTE AS LOGIN เพื่อตรวจสอบว่าบางคนสามารถหรือไม่สามารถใช้ฟังก์ชันตารางในฐานข้อมูลของเรา การทดสอบแสดงให้เห็นว่าเขาทำได้ แต่เขารายงานความล้มเหลวซ้ำ ๆ บุคคลนั้นใช้ชื่อเข้าสู่ระบบ 'WEB' เพื่อเชื่อมต่อกับฐานข้อมูลและมีผู้ใช้ 'เว็บ' ในฐานข้อมูลที่เกี่ยวข้องกับชื่อเข้าสู่ระบบ 'เว็บ' ดังนั้นฉันจึงลองใช้สคริปต์ต่อไปนี้: -- part 1 EXECUTE AS USER = 'WEB' GO SELECT USER_NAME() AS 'user_name' ,SUSER_NAME() AS 'suser_name' ,SUSER_SNAME() AS 'suser_sname' ,SYSTEM_USER AS 'system_user' GO REVERT GO และ -- part 2 EXECUTE AS LOGIN = …