บทความของฉันจะช่วยถ้าคุณตั้งค่าล่วงหน้า แต่ไม่ใช่เมื่อเหตุการณ์เกิดขึ้นในอดีตและคุณไม่มีกลไกการตรวจสอบใด ๆ
ยังมีความหวังอยู่ สมมติว่าฉันทำสิ่งนี้:
CREATE LOGIN flooberella WITH PASSWORD = N'x', CHECK_POLICY = OFF;
ข้อมูลนี้อยู่ในการติดตามเริ่มต้นภายใต้ EventClass 104 (ตรวจสอบเหตุการณ์ Addlogin ตรวจสอบ) อย่างไรก็ตามหากฉันเปลี่ยนรหัสผ่านโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:
ALTER LOGIN flooberella WITH PASSWORD = N'y';
EXEC sp_password N'y', N'z', N'flooberella';
เหตุการณ์เหล่านี้ไม่ได้ถูกดักจับโดยการติดตามเริ่มต้นด้วยเหตุผลด้านความปลอดภัยที่ชัดเจน - มันไม่ควรเป็นไปได้สำหรับทุกคนที่มีการเข้าถึงการติดตามเริ่มต้นเพื่อหาว่ารหัสผ่านของผู้อื่นคืออะไรและพวกเขาต้องการให้ง่ายต่อการค้นหา รหัสผ่านมีการเปลี่ยนแปลง (เช่นการสำรวจความถี่ของเหตุการณ์เหล่านี้สามารถเปิดเผยคุณสมบัติบางอย่างของกลยุทธ์ความปลอดภัยของคุณ)
แล้วคุณจะทำอะไรได้อีก ขณะที่สิ่งนี้อาศัยข้อมูลที่ยังอยู่ในบันทึกและยังใช้คำสั่ง DBCC ที่ไม่มีเอกสารกับฐานข้อมูลระบบ (คุณอาจต้องการแบ็คอัพมาสเตอร์และเรียกคืนข้อมูลจากที่อื่น) คุณสามารถรับข้อมูลบางอย่างจากบันทึกธุรกรรม เช่น:
DBCC LOG(master, 1);
สิ่งนี้จะให้ผลสำหรับสองคำสั่งข้างต้นแถวที่มีข้อมูล (บางส่วน) ดังต่อไปนี้:
Current LSN Description
====================== ======================================================================
000000f2:000001b8:0002 ALTER LOGIN;0x01050000000000051500000093a3bcd7a9f8fb1417ab13bce8030000
000000f2:000001b8:0004 Alter login change password;0x01050000000000 ... same sid as above ...
ดูเหมือนจะไม่มากนัก แต่ตอนนี้ใช้คำอธิบายส่วนที่ 0x จากนั้นทำ:
SELECT name FROM sys.server_principals
WHERE sid = 0x01050000000000051500000093a3bcd7a9f8fb1417ab13bce8030000;
ปืนสูบบุหรี่! นี่คือบุคคลที่รับผิดชอบเหตุการณ์นั้น
แน่นอนถ้าพวกเขาใช้ALTER LOGIN
ไวยากรณ์สำหรับการดำเนินการทั้งหมด (ซึ่งควรใช้แทนsp_password
) คุณจะไม่สามารถแยกแยะความแตกต่างระหว่างคนที่เปลี่ยนฐานข้อมูลเริ่มต้นกับคนที่เปลี่ยนรหัสผ่านได้ คุณไม่สามารถบอกได้ว่าอย่างน้อยฉันก็จะเห็นว่าการเข้าสู่ระบบนี้ได้รับผลกระทบเพียงใดโดยที่บุคคลนี้เปลี่ยนการเข้าสู่ระบบ จอนดูเหมือนว่าจะคิดว่าข้อมูลนี้อยู่ในล็อกด้วย แต่ฉันไม่พบมัน (ต่างจากข้อมูลเวลาซึ่งฉันเลื่อนไปทางขวาอย่างใดอย่างหนึ่ง)
อาจมีคำตอบที่แตกต่างกันสำหรับผู้ใช้ที่มีอยู่ใน SQL Server 2012 - แม้ว่าฉันสงสัยว่าการเปลี่ยนแปลงรหัสผ่านจะยังคงสับสนในวิธีที่คล้ายกัน จะปล่อยให้เป็นคำถามแยกต่างหาก