Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để giải quyết các vấn đề quyền khi bạn di chuyển một cơ sở dữ liệu giữa các máy chủ đang chạy SQL Server

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:240872
TÓM TẮT
Bài viết này mô tả làm thế nào để lập bản đồ các tiêu chuẩn và đăng nhập tích hợp để giải quyết các vấn đề quyền khi bạn di chuyển một cơ sở dữ liệu giữa các máy chủ đang chạy SQL Server.
THÔNG TIN THÊM
Khi bạn di chuyển một cơ sở dữ liệu từ một máy chủ đang chạy SQL Hệ phục vụ đến một máy chủ đang chạy SQL Server, một không phù hợp có thể xảy ra giữa các bảo mật số nhận dạng (SIDs) của đăng nhập trong các Thạc sĩ cơ sở dữ liệu và người sử dụng trong các người dùng cơ sở dữ liệu. Theo mặc định, SQL Server 7.0, SQL Server 2000 và SQL Server 2005 cung cấp các sp_change_users_login hệ thống lưu trữ thủ tục để ánh xạ những người dùng không khớp. Tuy nhiên, bạn có thể chỉ sử dụng các sp_change_users_login thủ tục được lưu trữ để ánh xạ tiêu chuẩn SQL Server đăng nhập và bạn phải thực hiện các lập bản đồ cho một người sử dụng tại một thời điểm. Để biết thêm thông tin về các sp_change_users_login lưu trữ thủ tục, xem chủ đề "sp_change_users_login" trong SQL Server 7.0, SQL Server 2000, và SQL Server 2005 sách trực tuyến.

Trong SQL Server 7.0 hay Phiên bản mới nhất, bạn có thể duy trì ánh xạ giữa đăng nhập trong các Thạc sĩ cơ sở dữ liệu và người sử dụng trong các người dùng cơ sở dữ liệu bằng cách sử dụng SIDs. Lập bản đồ này cần thiết để duy trì đúng quyền cho đăng nhập trong các người dùng cơ sở dữ liệu. Khi lập bản đồ này sẽ bị mất, các tin đăng nhập được phép các vấn đề đó bao gồm nhưng không giới hạn sau đây:
  • Nếu SQL Server đăng nhập không tồn tại trên máy chủ mới, và người dùng cố gắng đăng nhập, người dùng có thể nhận được lỗi sau tin nhắn:
    Máy chủ: Msg 18456, cấp 16, nhà nước 1
    Đăng nhập không thể cho người dùng '% ls'.
  • Nếu đăng nhập máy chủ SQL tồn tại trên máy chủ mới, nhưng các SID trong các Thạc sĩ cơ sở dữ liệu khác từ SID trong các người dùng cơ sở dữ liệu, người dùng có thể đăng nhập vào máy chủ SQL thành công; Tuy nhiên, khi người dùng cố gắng truy cập cơ sở dữ liệu đó, người dùng có thể nhận các thông báo lỗi sau:
    Máy chủ: Msg 916, tầng 14, nhà nước 1, Line1
    Người sử dụng hệ phục vụ ' %. * ls' không phải là một người sử dụng hợp lệ trong cơ sở dữ liệu ' %. * ls'.
    Chú ý Trong SQL Server 2005, người dùng có thể nhận được các thông báo lỗi sau:

    Người sử dụng hệ phục vụ '% s' không phải là một người sử dụng hợp lệ trong cơ sở dữ liệu '% s'. Thêm trương mục người dùng vào cơ sở dữ liệu lần đầu tiên.
Cho biết thêm thông tin về các mô hình SQL Server 7.0 Security, Xem giấy trắng "Microsoft sql Server 7.0 Security". Để xem trắng giấy, ghé thăm Web site sau của Microsoft:Để biết thêm chi tiết về mô hình SQL Server 2000 bảo mật, bấm số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
322712Microsoft SQL Server 2000 tính năng S322712 an ninh và thực tiễn tốt nhất

Hạn chế

  • Nếu người dùng trong các sysusers bảng mà không có một tiền tố của tên máy tính hoặc tên miền mà sở hữu đối tượng, và các đối tượng được tham chiếu trong các ứng dụng bằng cách sử dụng các tên hai phầntên người dùng.objectname, các ứng dụng có thể phá vỡ bởi vì các sp_sidmap được lưu trữ thủ tục đổi tên các người dùng với tiền tố của các tên máy tính hoặc tên miền như nó xuất hiện trong các sysxlogins bảng. Để làm việc xung quanh vấn đề này, sau khi các sp_sidmap hoàn tất thủ tục được lưu trữ, đổi tên những người đã bị ảnh hưởng trong sử dụng các sysusers bảng tên cũ của họ hoặc liên hệ với hỗ trợ chính của bạn nhà cung cấp.
  • Bài viết này không xem xét bí danh. Bạn phải quản lý các bí danh bằng tay.
  • Nếu một tên đăng nhập máy chủ SQL chuẩn không tồn tại trên các mới Máy chủ SQL Server, bạn có thể thêm đăng nhập với mật khẩu NULL. Bạn có thể phải thay đổi mật khẩu cho các tin đăng nhập cho phù hợp.
  • Nếu một người sử dụng đã được tạo ra trong các người dùng cơ sở dữ liệu với một tên khác từ đó xuất hiện trong các sysxlogins bảng, không thể biết đăng nhập tương ứng cho rằng người sử dụng. Vì vậy, trước khi bạn chạy các sp_sidmap thủ tục được lưu trữ:
    1. Chuyển tất cả các đối tượng người dùng này sở hữu một dàn cơ sở dữ liệu.
    2. Thả người sử dụng, thêm người dùng có tên chính xác, và sau đó chuyển trở lại tất cả các đối tượng cho người dùng này.
  • Nếu một người sử dụng đã không một đăng nhập tương ứng cũng như một tiền tố của tên máy tính địa phương hoặc tên miền, bạn nhận được một tin nhắn cho người dùng này. Thông điệp này chỉ ra rằng bạn phải đầu tiên thêm người dùng lúc các Windows cấp và sau đó thêm nó vào các máy chủ SQL như một tên đăng nhập. Sau khi bạn làm điều này, bạn phải chạy các sp_sidmap thủ tục được lưu trữ một lần nữa.
  • Nếu một người sử dụng có một tiền tố của một trong hai tên miền hoặc các tên hệ phục vụ Windows địa phương, nhưng đăng nhập tương ứng không tồn tại trong các sysxlogins bảng, các thủ tục được lưu trữ cố gắng thêm này như là một đăng nhập mới vào SQL Server. Nếu người dùng Windows không tồn tại, nó tạo ra một thông báo đầu ra trong cửa sổ kết quả và sau đó tự tạo đăng nhập sau khi nó lần đầu tiên thêm người dùng Windows.
  • Nếu có nhiều hơn một đăng nhập cho người dùng trong các sysusers bảng, bạn thấy thư đầu ra, các tập tin kết quả và nó sẽ liệt kê tất cả các đăng nhập có cùng tên người dùng. Tại thời điểm này, bạn phải tự can thiệp để đảm bảo rằng người dùng tương ứng với chỉ có một đăng nhập.

    Ví dụ Nếu sysusers bảng này có một người dùng có tên "johndoe" và các sysxlogins bảng đã đăng nhập với tên như là "test\johndoe" và "test2\johndoe", khi bạn chạy các thủ tục được lưu trữ, bạn nhận được một tin nhắn mà nói rằng một trong những người dùng đã đăng nhập nhiều hơn một và rằng hệ thống Người quản trị phải chọn một. Đây là chỉ thời gian mà bạn phải chạy thứ hai thủ tục được lưu trữ, sp_prefix_sysusersname, mà được cung cấp trong bài viết này. Ngoài ra, tình hình này được mô tả chi tiết trong Readme.txt file.

Bản đồ tiêu chuẩn và tích hợp tin đăng nhập

Sau khi bạn di chuyển một cơ sở dữ liệu từ một máy chủ đang chạy SQL Máy chủ máy chủ đến một máy chủ đang chạy SQL Server máy chủ, làm theo các bước cho sự can thiệp của người sử dụng tối thiểu:

SQL Server 7.0 và SQL Server 2000

  1. Chắc chắn rằng có một đăng nhập trong các sysxlogins bảng trong các Thạc sĩ cơ sở dữ liệu cho mỗi người dùng trong các sysusers bảng cơ sở dữ liệu.

    Chú ý Để thêm một đăng nhập máy chủ SQL chuẩn, xem các chủ đề "sp_addlogin" trong SQL Server sách trực tuyến. Để thêm một tích hợp SQL Server đăng nhập, hãy xem các chủ đề "sp_grantlogin" trong SQL Server sách trực tuyến.
  2. Tải các tập tin MapSids.exe, và sau đó giải nén các Tệp Sp_sidmap.SQL và Readme.txt.
  3. Đăng nhập vào máy chủ đang chạy SQL Server như một hệ thống người quản trị, và sau đó chạy Sp_sidmap.sql tập tin trong cơ sở dữ liệu người dùng. Chạy các tập tin Sp_sidmap.sql tạo ra hai thủ tục được lưu trữ, sp_sidmapsp_prefix_sysusersname.
  4. Đảm bảo rằng cơ sở dữ liệu không được truy nhập bởi bất kỳ khác người sử dụng hơn so với những người đang chạy các thủ tục được lưu trữ.
  5. Hãy chắc chắn rằng truy vấn Analyzer hiển thị kết quả trong văn bản định dạng và không trong lưới định dạng. Để thực hiện việc này, hoặc bấm cácCTRL ^ T phím, hoặc nhấp chuột Truy vấn, và sau đó nhấp vào Kết quả trong văn bản. Điều này là rất quan trọng do đó bạn có thể xem các kết quả và các thông tin thư trong một cửa sổ và lưu đầu ra vào một tập tin văn bản. Bạn có thể cần tranh sau đó để giải quyết một số các ánh xạ.
  6. Vì bạn không thể xác nhận cho dù các thông số được thông qua một cách chính xác, hãy chắc chắn để chuyển chúng một cách chính xác để các sp_sidmap thủ tục được lưu trữ:
    EXEC sp_SidMap @old_domain = old_domain_name,@new_domain = new_domain_name,@old_server = old_server_name,@new_server = new_server_name
    Thay thế các giá trị cho các tên miền cũ và mới và tên hệ phục vụ một cách thích hợp.
  7. Lưu kết quả trong một tập tin và làm theo các hướng dẫn mà được cung cấp trong Readme.txt file.

    Chú ý Khi bạn chạy các thủ tục được lưu trữ, các sysusers bàn là bảng chỉ rằng những thay đổi trong cơ sở dữ liệu. Để trở về để một bang nơi bạn bắt đầu, khôi phục lại cơ sở dữ liệu từ bản sao lưu hoặc reattach cơ sở dữ liệu.

SQL Server 2005

Nếu bạn đang chạy SQL Server 2005, sử dụng các VỚI ĐĂNG NHẬP điều khoản của các ALTER NGƯỜI DÙNG tuyên bố của remap một người sử dụng một đăng nhập mới. Để biết thêm chi tiết, ghé thăm Web site sau của Microsoft Developer Network (MSDN):Chú ý Sử dụng các VỚI ĐĂNG NHẬP điều khoản của các ALTER NGƯỜI DÙNG tuyên bố, bạn phải áp dụng SQL Server 2005 Service Pack 2.
THAM KHẢO
Để biết thêm chi tiết, nhấp vào số bài viết sau để xem các bài viết trong cơ sở kiến thức Microsoft:
274188"Giải đáp thắc mắc mồ côi người dùng" chủ đề trong cuốn sách trực tuyến là không đầy đủ
246133 Làm thế nào để chuyển các tin đăng nhập và mật khẩu giữa các trường hợp của SQL Server
168001 Người dùng đăng nhập và/hoặc sự cho phép lỗi sau khi khôi phục kết xuất
298897 MẪU: Mapsids.exe giúp Map SIDs giữa người sử dụng và cơ sở dữ liệu Master khi cơ sở dữ liệu di chuyển

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 240872 - Xem lại Lần cuối: 09/01/2011 10:47:00 - Bản sửa đổi: 3.0

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 64-bit Edition, Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbsqlsetup kbhowtomaster kbmt KB240872 KbMtvi
Phản hồi
>