Vấn đề là việc khôi phục mang lại cho người dùng db từ phiên bản máy chủ ban đầu nhưng phiên bản mới thường không biết gì về những lần đăng nhập của người dùng đó. Bạn sẽ thấy chúng trong Bảo mật ở cấp db, nhưng chúng không có thông tin đăng nhập cấp máy chủ tương ứng.
Bạn cần gắn lại người dùng cơ sở dữ liệu bằng thông tin đăng nhập máy chủ trong trường hợp bạn đã khôi phục cơ sở dữ liệu.
Có một vài cách để làm điều đó:
Tạo thông tin đăng nhập mới cho họ trong trường hợp mới. Sau đó, bạn sẽ phải xóa chúng dưới dạng người dùng cơ sở dữ liệu trên phiên bản mới và thêm thông tin đăng nhập mới của họ. Điều này có vẻ kỳ lạ khi bạn có thể tạo cùng tên đăng nhập, nhưng SID (định danh bảo mật) sẽ khác và đó là những gì SQL sử dụng để nhận dạng người dùng. Điều này là đủ dễ dàng cho một hoặc hai lần đăng nhập.
Nếu bạn muốn duy trì cùng một người dùng, giữ cùng một SID, trong các trường hợp, sau đó sử dụng thủ tục được lưu trữ sp_help_Vvlogin . Sao chép mã từ liên kết sẽ tạo các thủ tục được lưu trữ cần thiết và chạy nó trên máy chủ mà bạn muốn sao chép người dùng từ đó. Nó sẽ tạo một tập lệnh SQL mà bạn có thể chạy trên máy chủ mục tiêu của mình để tạo cùng một người dùng mang theo SID, mật khẩu, mọi thứ. Đây là cách để đi nếu bạn có nhiều người dùng cơ sở dữ liệu, bạn cần kết nối lại với thể hiện đích hoặc nếu bạn không biết mật khẩu cho một hoặc nhiều Đăng nhập SQL trên ví dụ nguồn.
EXEC sp_change_users_login 'Auto_Fix', 'User', NULL, 'password';
thay vào đó. :)