Cara menyambungkan login SQL Server yang sudah ada ke pengguna database SQL Server yang sudah ada dengan nama yang sama

124

Apakah ada perintah SQL Server untuk menghubungkan pengguna database tunggal ke login untuk server database dengan nama yang sama?

Sebagai contoh:

Server Database -
Database Instance Default : TestDB

Login Server - TestUser
Pengguna yang ada di TestDB - TestUser

Jika saya mencoba membuat TestUserlogin sebagai pengguna TestDBdatabase, "Pengguna, grup, atau peran" sudah ada.

Apakah ada yang tahu cara mudah untuk menetapkan pengguna DB ke login server ?

jkelley.dll
sumber

Jawaban:

229

Cara baru (SQL 2008 dan seterusnya) adalah menggunakan ALTER USER

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;
gbn
sumber
Apakah ini baru per SQL2008?
jkelley
2
Sejak SQL Server 2005. Link Gratzy mengacu pada ini sebenarnya.
gbn
Saya baru saja menggunakan ini di SQL Server 2012 dan saya dapat mengonfirmasi bahwa ini berfungsi
Ubercoder
6

Saya pikir itu sp_change_users_login. Sudah agak lama, tapi saya biasa melakukan itu saat melepaskan dan memasang kembali database.

Gratzy
sumber
1
Jika login SQL dibuat menggunakan login pengguna Windows, maka sp_change_users_login tidak akan berfungsi - Saya mengalami hal ini hari ini, mengarahkan saya ke pertanyaan ini. msdn.microsoft.com/en-us/library/ms174378.aspx
Tom Miller
metode ini sekarang ditinggalkan karena mendukung ALTER USERmetode di atas
Liam
@liam apakah Anda benar-benar baru saja memberikan suara untuk jawaban ini yang berusia 8 tahun dan merujuk pada jawaban yang diterima yang juga berusia 8 tahun yang sudah berisi informasi yang sudah usang?
Gratzy
2

Saya telah menggunakan sp_change_users_loginprosedur untuk mencapai, saya pikir, skenario itu.

joelt
sumber