Người dùng cơ sở dữ liệu và Đăng nhập máy chủ và Ánh xạ giữa chúng


8

Tôi có một phiên bản SQL Server 2008 R2 Express Edition tại nhà và một phiên bản khác trên máy chủ tại cơ sở khách hàng mà tôi đang sử dụng để phát triển ứng dụng sử dụng Access làm giao diện người dùng. Ứng dụng này có 5 thông tin đăng nhập riêng mà tôi có thể sử dụng trong chuỗi kết nối (dựa trên Nhóm truy cập mà người dùng đang ở). Ví dụ tại nhà có một số cơ sở dữ liệu - một số trong đó không liên quan gì đến ứng dụng này

Tôi đã tự tạo các thông tin đăng nhập theo từng trường hợp theo thời gian (và có thể theo một thứ tự khác).

Tôi hy vọng có thể (hơn một lần) sao lưu từ máy chủ cơ sở dữ liệu mà tôi đang làm việc và tải nó trên cơ sở tại cơ sở của khách hàng bằng cách sử dụng khôi phục, chỉ cần di chuyển các tệp trong bản sao lưu thành thực tế các tập tin được sử dụng trên máy chủ này trong quá trình khôi phục. Phần tôi không hiểu là ánh xạ giữa người dùng cơ sở dữ liệu và thông tin đăng nhập.

Tôi đã nghĩ rằng sự tương ứng của tên là đủ, nhưng khi cố gắng khắc phục sự cố mà người dùng cơ sở dữ liệu đã khôi phục dường như không được ánh xạ tới thông tin đăng nhập máy chủ, tôi đã gặp câu lệnh ALTER USER của Transact-SQL và đặc biệt tham chiếu của nó để sử dụng VỚI ĐĂNG NHẬP và một số thảo luận về "SID".

Vì (tôi đoán) các tên Đăng nhập máy chủ có sự khác biệt của SID trong mỗi trường hợp, điều đó có nghĩa là sau khi tôi tải một bản sao lưu giữa các phiên bản mà tôi phải kết nối lại ánh xạ với một loạt lệnh ALTER USER VỚI LOGIN?

Câu trả lời:


9

Loginshoặc thông tin đăng nhập máy chủ tồn tại ở cấp máy chủ SQL và database userở cấp cơ sở dữ liệu. Họ không cần phải có cùng tên, nhưng thường làm. Trong một trường hợp, bạn không thể có chức năng người dùng cơ sở dữ liệu đúng cách mà không cần đăng nhập máy chủ SQL tương ứng.

Giả sử bạn có một ví dụ: instanceA với userA đăng nhập sever trên máy tính của bạn. Bạn có thể ánh xạ máy chủ này đăng nhập userA tới người dùng cơ sở dữ liệu: userA cho cơ sở dữ liệu DB_A . Cả hai đều có tên userA , nhưng một là máy chủ loginvà một là database user. Người dùng cơ sở dữ liệu: userA cư trú trong DB_A . Khi bạn sao lưu và khôi phục DB_A từ instanceA khác instanceB , những người sử dụng cơ sở dữ liệu: userA được di chuyển, nhưng đăng nhập máy chủ: userA vẫn còn trên instanceA. Để di chuyển thông tin đăng nhập từ instanceA sang instanceB, bạn có thể sử dụngsp_help_Vvlogin (Nhấp để xem trang KB) .

Nếu trước đây bạn đã tạo userA đăng nhập máy chủ SQL trên instanceB , thì SQL sẽ cố gắng ánh xạ thông tin đăng nhập này với người dùng cơ sở dữ liệu: userA, khi DB_A được khôi phục từ instanceA sang instanceB. Nếu điều này không thành công, bạn có thể sử dụng thủ tục sp_change_usftimelogin (Nhấp vào liên kết BOL) để sửa các ánh xạ bị hỏng. Hy vọng điều này sẽ làm rõ ràng mọi thứ.


Cảm ơn - Tôi tin rằng tôi đã có các khái niệm đúng, nhưng sp_help_Vvlogin và sp_change_usftimelog và mới và tôi sẽ giúp tôi. Tôi sẽ khám phá thêm. Cảm ơn
akc42
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.