2011-06-16 41 views
9

Tôi phải tạo bản sao cục bộ của cơ sở dữ liệu SQL Server từ xa. Tôi đã làm điều này bằng cách sử dụng Tác vụ> Sao lưu từ Management Studio. Sau đó tôi đã khôi phục cục bộ bản sao lưu, có vẻ như có mọi thứ - bảng, người dùng, khóa đối xứng và chứng chỉ.Khôi phục cơ sở dữ liệu máy chủ SQL - Khóa chính không mở

Khi tôi cố gắng thực hiện một lựa chọn đòi hỏi tôi phải mở khóa đối xứng và giải mã theo Giấy chứng nhận, tôi nhận được lỗi này:

Please create a master key in the database or open the master key in the session before performing this operation. 

Tại sao tôi được yêu cầu cho điều này, và tại sao không nó tự động mở như trên máy chủ từ xa?

Tôi đã thử thay đổi khóa chính nhưng không có mật khẩu ban đầu, tôi không thể làm được gì nhiều.

+0

Hmm, tôi hy vọng nó không phải dễ dàng để khôi phục lại một chìa khóa vạn mà không có mật khẩu, đó là nơi sự an toàn của tất cả đến từ đâu.Tôi đoán đây có thể là một bài học trong việc sử dụng mật mã khóa công khai để bảo vệ khóa chủ của bạn và sao lưu chứng chỉ ở nơi an toàn. –

+1

@Petey có lẽ tôi đang thiếu một cái gì đó hiển nhiên ở đây; trên máy ban đầu, bạn không cần phải mở khóa, bạn chỉ có thể chạy thủ tục được lưu trữ. Có một số lỗ hổng trong xuất/nhập của tôi không? – ashes999

+0

Cách đơn giản nhất để giải quyết vấn đề này là sao lưu khóa chính của cơ sở dữ liệu và gán mật khẩu đó để bảo vệ tệp. Sau đó, khôi phục khóa chính của cơ sở dữ liệu bằng cách sử dụng mật khẩu cho cơ sở dữ liệu đã khôi phục. Điều này sẽ hoạt động mà không cần biết mật khẩu ban đầu được sử dụng để tạo DMK miễn là DMK cũng được mã hóa bởi SMK trên hệ thống sản xuất của bạn, theo mặc định, trừ khi mã hóa bằng khóa bị loại bỏ. –

Trả lời

6

vấn đề là SMK đã thay đổi (kể từ khi máy đã thay đổi). Có một bài viết giải thích nó here. Chỉ cần xuất và nhập SMK - nhớ rằng mọi dữ liệu được mã hóa trong hệ thống đã sao chép của bạn sẽ không thể đọc được.

bài viết MSDN:

0

Bạn không thể bỏ qua mã hóa. Xem này link cho từ chính thức của Microsoft.

+0

Tôi không muốn bỏ qua. Tôi đang tìm cách sao chép, và bây giờ tôi không còn có thể mã hóa dữ liệu trên máy mới nữa. Tôi đã chỉnh sửa câu hỏi của mình để làm rõ hơn. – ashes999

2

Đây là một bài viết tốt đặc biệt về di chuyển một cơ sở dữ liệu bao gồm mã hóa:

http://www.sql-server-performance.com/2009/migrating-databases-checklist-part3/3/

Nhưng trong ngắn hạn, bạn cần phải biết mật khẩu gốc để di chuyển nó.

Bạn có thể sao lưu và khôi phục lại chìa khóa (tức là tái tạo như bạn đề cập) nhưng bạn sẽ cần truy cập vào máy chủ từ xa, khả năng tạo bản sao lưu, hoặc bản sao của sao lưu với mật khẩu ban đầu:

http://msdn.microsoft.com/en-us/library/ff848768.aspx

cuộc nói chuyện forum này cũng có thể hữu ích cho cái nhìn sâu sắc:

http://www.sqlservercentral.com/Forums/Topic775644-146-1.aspx

+0

+1 Liên kết đẹp, nhưng không giải quyết được sự cố của tôi. – ashes999

1

Same problem solved without data loss - if you have the password creating the master key

Chìa khóa thạc sĩ trong cơ sở dữ liệu đã được mã hóa bởi Service Master Key. Nó sẽ tự động mở khi bạn sử dụng phím chính.

Bây giờ khóa chính của dịch vụ không thể mở khóa chính, và SQL đang nhắc bạn "MỞ THAY THẾ MASTER DECRYPTION BY PASSWORD = 'mật khẩu'" theo cách thủ công hoặc tạo khóa chính.

Việc thêm mã hóa bằng Khóa chính của dịch vụ NEW SERVER sẽ lại cho phép mở khóa chính tự động.

Kudos để những kẻ đó đã trả lời câu hỏi trong liên kết

Các vấn đề liên quan