วิธีการเชื่อมต่อล็อกอิน SQL Server ที่มีอยู่กับผู้ใช้ฐานข้อมูล SQL Server ที่มีชื่อเดียวกัน


124

มีคำสั่ง SQL Server เพื่อเชื่อมต่อผู้ใช้ฐานข้อมูลเดียวกับล็อกอินสำหรับเซิร์ฟเวอร์ฐานข้อมูลที่มีชื่อเดียวกันหรือไม่

ตัวอย่างเช่น:

เซิร์ฟเวอร์ฐานข้อมูล -
ฐานข้อมูลอินสแตนซ์เริ่มต้น: TestDB

เข้าสู่ระบบเซิร์ฟเวอร์ -
ผู้ใช้ที่มีอยู่ของTestUser บน TestDB - TestUser

ถ้าฉันพยายามทำให้การTestUserเข้าสู่ระบบเป็นผู้ใช้ของTestDBฐานข้อมูลจะมี "ผู้ใช้กลุ่มหรือบทบาท" อยู่แล้ว

มีใครทราบวิธีง่ายๆในการกำหนดผู้ใช้ DB ให้เข้าสู่ระบบเซิร์ฟเวอร์หรือไม่?

คำตอบ:


229

ใหม่วิธี (SQL 2008 เป็นต้นไป) คือการใช้ALTER USER

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;

ใหม่นี้สำหรับ SQL2008 หรือไม่
jkelley

2
ตั้งแต่ SQL Server 2005 ลิงก์ของ Gratzy อ้างถึงสิ่งนี้จริง
gbn

ฉันเพิ่งใช้สิ่งนี้ใน SQL Server 2012 และยืนยันได้ว่าใช้งานได้
Ubercoder

6

sp_change_users_loginฉันคิดว่ามัน ใช้เวลาไม่นาน แต่ฉันเคยทำเช่นนั้นเมื่อถอดและเชื่อมต่อฐานข้อมูลใหม่


1
หากการเข้าสู่ระบบ SQL ถูกสร้างขึ้นโดยใช้การเข้าสู่ระบบของผู้ใช้ Windows sp_change_users_login จะไม่ทำงาน - ฉันพบสิ่งนี้ในวันนี้ซึ่งนำฉันไปสู่คำถามนี้ msdn.microsoft.com/en-us/library/ms174378.aspx
Tom Miller

วิธีนี้เลิกใช้แล้วเพื่อสนับสนุนALTER USERวิธีการข้างต้น
Liam

@ เลมอนคุณเพิ่งลงคะแนนคำตอบนี้ที่มีอายุ 8 ปีและอ้างอิงคำตอบที่ยอมรับซึ่งมีอายุ 8 ปีซึ่งมีข้อมูลว่าเลิกใช้แล้วหรือยัง?
Gratzy

2

ฉันใช้sp_change_users_loginขั้นตอนนี้เพื่อทำให้สำเร็จฉันคิดว่าสถานการณ์นั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.