ปัญหาคือการกู้คืนจะนำผู้ใช้ db กลับมาจากอินสแตนซ์เซิร์ฟเวอร์ดั้งเดิม แต่โดยทั่วไปแล้วอินสแตนซ์ใหม่จะไม่ทราบว่าการเข้าสู่ระบบของผู้ใช้เหล่านั้นเป็นอย่างไร คุณจะเห็นพวกเขาภายใต้ความปลอดภัยที่ระดับ db แต่ไม่มีการลงชื่อเข้าใช้ระดับเซิร์ฟเวอร์ที่สอดคล้องกัน
คุณต้องติดตั้งผู้ใช้ฐานข้อมูลอีกครั้งด้วยการล็อกอินเซิร์ฟเวอร์บนอินสแตนซ์ที่คุณกู้คืนฐานข้อมูล
มีสองสามวิธีที่จะไปเกี่ยวกับมัน:
สร้างการเข้าสู่ระบบใหม่สำหรับพวกเขาในอินสแตนซ์ใหม่ จากนั้นคุณจะต้องลบออกเป็นผู้ใช้ฐานข้อมูลในอินสแตนซ์ใหม่และเพิ่มการเข้าสู่ระบบใหม่ ดูเหมือนจะแปลกเนื่องจากคุณสามารถสร้างชื่อเข้าสู่ระบบเดียวกัน แต่ SID (ตัวระบุความปลอดภัย) จะแตกต่างกันและนั่นคือสิ่งที่ SQL ใช้สำหรับการระบุผู้ใช้ การทำเช่นนี้ง่ายพอสำหรับการเข้าสู่ระบบหนึ่งหรือสองครั้ง
ถ้าคุณต้องการที่จะรักษาผู้ใช้เดียวกันการรักษา SID เดียวกันในอินสแตนซ์จากนั้นใช้sp_help_revloginกระบวนงานที่เก็บไว้ คัดลอกรหัสจากลิงค์ซึ่งจะสร้างขั้นตอนการจัดเก็บที่จำเป็นและเรียกใช้บนเซิร์ฟเวอร์ที่คุณต้องการคัดลอกผู้ใช้ มันจะสร้างสคริปต์ SQL ที่คุณสามารถเรียกใช้บนเซิร์ฟเวอร์เป้าหมายของคุณเพื่อสร้างผู้ใช้เดียวกันกับที่ถือครองรหัสผ่านทุกอย่างของ SID นี่คือวิธีที่จะไปหากคุณมีผู้ใช้ฐานข้อมูลจำนวนมากที่คุณต้องเชื่อมต่อกับอินสแตนซ์เป้าหมายอีกครั้งหรือหากคุณไม่ทราบรหัสผ่านของการเข้าสู่ระบบ SQL อย่างน้อยหนึ่งรายการในอินสแตนซ์แหล่งที่มา
EXEC sp_change_users_login 'Auto_Fix', 'User', NULL, 'password';
แทน :)