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

Người sử dụng logons và cấp phép trên một cơ sở dữ liệu có thể không chính xác sau khi cơ sở dữ liệu được khôi phục

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:168001
TRIỆU CHỨNG
Nếu một bãi chứa một cơ sở dữ liệu người sử dụng SQL Server khôi phục lại một SQL máy chủ khác nhau (chẳng hạn như một máy chủ dự phòng nóng) hoặc để cùng SQL Server sau khi xây dựng lại hoặc tải lại một phiên bản cũ của cơ sở dữ liệu tổng thể, người sử dụng logons và cấp phép trên cơ sở dữ liệu có thể không chính xác.

Điều này vấn đề có thể tiết lộ chính nó trong một số cách:
  • Trong khi đăng nhập vào một máy chủ 6.x, người dùng có thể nhận được các lỗi sau:
    Msg 4002, cấp 14, bang 1, máy chủ Microsoft SQL Server, Line 0
    Đăng nhập thất bại
    DB-thư viện: đăng nhập không chính xác.
  • Trong khi đăng nhập vào một máy chủ 7,0, người dùng có thể nhận được các lỗi sau:
    Msg 18456, tầng 14, bang 1,
    Đăng nhập không thể cho người dùng '% ls'.
  • Trong khi cố gắng để truy cập vào các đối tượng trong cơ sở dữ liệu người dùng có thể nhận được lỗi sau:
    Msg 229, cấp 14, nhà nước 1
    %s quyền bị từ chối vào đối tượng %. * s, cơ sở dữ liệu %. * s, chủ sở hữu %.*s
  • Trong khi cố gắng tạo ra một đăng nhập và cấp quyền truy cập vào các Khôi phục cơ sở dữ liệu, hoặc thêm người dùng vào cơ sở dữ liệu, lỗi sau đây có thể là đã nhận được:
    Microsoft SQL-DMO (ODBC SQLState: 42000) lỗi 15023: Người sử dụng hoặc vai trò '% s' đã tồn tại trong cơ sở dữ liệu hiện tại.
  • Người dùng có thể có quyền trên các đối tượng mà họ trước đó không.
NGUYÊN NHÂN
Thông tin đăng nhập người dùng được lưu trữ trong bảng syslogins trong cơ sở dữ liệu tổng thể. Bằng cách thay đổi các máy chủ, hoặc bằng cách thay đổi thông tin này bởi xây dựng lại hoặc khôi phục một phiên bản cũ của cơ sở dữ liệu tổng thể, thông tin có thể khác nhau từ khi bãi chứa cơ sở dữ liệu người dùng được tạo ra. Nếu logons thì không địa phương cho những người sử dụng, họ sẽ nhận được một lỗi biểu "đăng nhập không" trong khi cố gắng đăng nhập vào hệ phục vụ. Nếu người dùng logons tồn tại, nhưng SUID giá trị (cho 6.x) hoặc giá trị SID (cho 7.0) ở bậc thầy...syslogins và các sysusers bảng trong cơ sở dữ liệu người dùng khác, những người sử dụng có thể có quyền hạn khác nhau hơn dự kiến trong cơ sở dữ liệu người dùng.

Chú ý Nếu bạn đang sử dụng Microsoft SQL Server 2005, các syslogins bảng và các sysusers bảng được thực hiện như lượt xem khả năng tương thích. Những quan điểm sys.sysloginssys.sysusers. Để biết thêm chi tiết về khả năng tương thích xem, xem chủ đề "Compatibility Views (Transact-sql)" trong SQL Server 2005 sách trực tuyến.
CÁCH GIẢI QUYẾT KHÁC
Để làm việc xung quanh vấn đề này, làm bất cứ sau đây:
  • Nếu kịch bản hiện tại đang có sẵn để thêm logons, người sử dụng, và điều khoản, thả và tạo lại chúng từ kịch bản. Đối với ví dụ của việc sử dụng kịch bản chuyển tên đăng nhập giữa các máy chủ, xem sau cơ sở kiến thức Microsoft bài viết:
    246133 Làm thế nào để: Chuyển tin đăng nhập và mật khẩu giữa các trường hợp của SQL Server
    240872 Làm thế nào để giải quyết các vấn đề quyền khi một cơ sở dữ liệu được di chuyển giữa các máy chủ SQL
  • Bạn có thể sử dụng các sp_change_users_login lưu trữ thủ tục để reassociate các mối quan hệ giữa các syslogins, sysusers và sysalternates bàn. Tuy nhiên, các thủ tục làm cho tốt nhất ước tính trên các liên kết, và có thể cho phép một người sử dụng quyền truy cập nhiều hơn so với dự định. Chạy các thủ tục với tùy chọn báo cáo đầu tiên sẽ tạo ra một danh sách người dùng sẽ được thay đổi. Sau đó, bạn nên kiểm tra để đảm bảo rằng các người dùng bị ảnh hưởng có quyền thích hợp. Ngoài ra, lưu ý rằng các sp_change_users_login thủ tục không khắc phục vấn đề quyền có nguồn gốc từ Logons và người sử dụng tạo ra theo một thứ tự khác nhau trên cơ sở dữ liệu mà sao lưu được phục hồi.
  • Khôi phục kết xuất của cơ sở dữ liệu tổng thể từ thời gian của các bãi chứa cơ sở dữ liệu người dùng tới hệ phục vụ trước khi tải cơ sở dữ liệu người dùng. Làm điều này đảm bảo rằng tất cả các thông tin người dùng ở người sử dụng cơ sở dữ liệu phù hợp một cách chính xác với bảng syslogins Thạc sĩ.

    CẢNH BÁO: Cơ sở dữ liệu tổng thể chứa thông tin toàn hệ phục vụ, và ảnh hưởng đến tất cả các cơ sở dữ liệu trên máy chủ. Bằng cách khôi phục cơ sở dữ liệu tổng thể, bạn có thể gặp phải thêm người dùng ID và/hoặc cơ sở dữ liệu bị mất hoặc có sai cấp phép. Bất kỳ thay đổi để các thầy đã xảy ra kể từ thời điểm các sao lưu sẽ bị mất. Chỉ sử dụng phương pháp này nếu bạn chắc chắn rằng bản sao lưu Phiên bản chủ cơ sở dữ liệu chứa thông tin chính xác cho người dùng cơ sở dữ liệu trong câu hỏi và tất cả các cơ sở dữ liệu trên máy chủ.
  • Sử dụng chuyển Quản lý (cho 6.x) hoặc DTS (cho 7.0) để sao chép các tin đăng nhập. Lưu ý rằng các mật khẩu sẽ không là chuyển bằng cách sử dụng phương pháp này.
  • Liên hệ của bạn nhà cung cấp hỗ trợ chính.

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

Thuộc tính

ID Bài viết: 168001 - Xem lại Lần cuối: 08/19/2011 09:13:00 - Bản sửa đổi: 2.0

Microsoft SQL Server 6.0 Standard Edition, Microsoft SQL Server 6.5 Standard Edition, Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbprb kbusage kbmt KB168001 KbMtvi
Phản hồi