Cách kết nối thông tin đăng nhập SQL Server hiện có với người dùng cơ sở dữ liệu SQL Server có cùng tên


124

Có lệnh SQL Server nào để kết nối người dùng của một cơ sở dữ liệu với thông tin đăng nhập cho máy chủ cơ sở dữ liệu cùng tên không?

Ví dụ:

Máy chủ cơ sở dữ liệu - Cơ sở dữ liệu phiên bản mặc định
: TestDB

Đăng nhập máy chủ - TestUser Người
dùng hiện có trên TestDB - TestUser

Nếu tôi cố gắng đặt TestUserthông tin đăng nhập là người dùng của TestDBcơ sở dữ liệu thì "Người dùng, nhóm hoặc vai trò" đã tồn tại.

Có ai biết một cách dễ dàng để chỉ định người dùng DB cho đăng nhập máy chủ không?

Câu trả lời:


229

Cách mới (SQL 2008 trở đi) là sử dụng ALTER USER

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;

Điều này có mới cho mỗi SQL2008 không?
jkelley

2
Kể từ SQL Server 2005. Liên kết của Gratzy đề cập đến điều này thực sự.
gbn

Tôi chỉ sử dụng điều này trong SQL Server 2012 và tôi có thể xác nhận nó hoạt động
Ubercoder

6

Tôi nghĩ là nó sp_change_users_login. Đó là một thời gian ngắn, nhưng tôi đã từng làm điều đó khi tách và gắn lại cơ sở dữ liệu.


1
Nếu thông tin đăng nhập SQL được tạo bằng thông tin đăng nhập người dùng Windows, thì sp_change_users_login sẽ không hoạt động - hôm nay tôi gặp phải vấn đề này, dẫn tôi đến câu hỏi này. msdn.microsoft.com/en-us/library/ms174378.aspx
Tom Miller

Phương pháp này hiện không được chấp nhận thay vì ALTER USERphương pháp ở trên
Liam

@liam bạn thực sự chỉ bỏ phiếu cho câu trả lời này là 8 tuổi và tham chiếu câu trả lời được chấp nhận cũng là 8 năm đã chứa thông tin mà nó không được chấp nhận?
Gratzy

2

Tôi nghĩ rằng tôi đã sử dụng sp_change_users_loginthủ tục để hoàn thành kịch bản đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.