2008-09-29 74 views
7

Tôi có một cơ sở dữ liệu SQL Server 2005 hiện có chứa dữ liệu được mã hóa bằng cách sử dụng khóa Đối xứng. Khóa đối xứng được mở bằng mật khẩu. Tôi đang nâng cấp lên các ứng dụng giao diện người dùng sử dụng cơ sở dữ liệu này, bao gồm thêm hàng tá bảng mới, thủ tục lưu sẵn, UDF, vv và hàng tá sửa đổi đối với các bảng và đối tượng cơ sở dữ liệu hiện có. Để kết thúc đó tôi đang tạo một bản sao của cơ sở dữ liệu phát triển hiện có, để hệ thống hiện tại có thể được hỗ trợ, duy trì và cập nhật độc lập trong khi phát triển mới diễn ra.Làm thế nào để chuyển dữ liệu được mã hóa sql giữa các cơ sở dữ liệu SQL Server 2005?

Cách tốt để thực hiện sao chép cơ sở dữ liệu là gì? Thông thường, tôi sẽ lấy một bản sao lưu của cơ sở dữ liệu hiện có, và sau đó khôi phục nó vào cơ sở dữ liệu mới. Tuy nhiên, điều này có khả thi cho dữ liệu được mã hóa không? Liệu tôi vẫn có thể mã hóa và quan trọng hơn là giải mã dữ liệu trong cơ sở dữ liệu mới bằng cách sử dụng khóa và mật khẩu đối xứng hiện tại?

Thay vào đó, tôi có thể muốn sử dụng DTS để chỉ chuyển giao lược đồ hiện có. Tạo khóa/mật khẩu đối xứng mới trong cơ sở dữ liệu mới. Sau đó, viết các truy vấn đặc biệt để truyền dữ liệu, giải mã bằng khóa/mật khẩu hiện có và mã hóa bằng khóa/mật khẩu mới trong cơ sở dữ liệu mới.

Tôi đoán là trái tim của điều này là các khóa đối xứng tốt cho việc mã hóa/giải mã dữ liệu trong một cơ sở dữ liệu hoặc trong nhiều cơ sở dữ liệu trên cùng một máy chủ?

Trả lời

3

Các khóa đối xứng mà bạn đang đề cập đến là các khóa cơ sở dữ liệu chính (DMK). Chúng được tổ chức ở cấp Cơ sở dữ liệu, vì vậy sao lưu/khôi phục lại một máy chủ SQL khác sẽ hoạt động OK (với sự báo trước của các tài khoản dịch vụ khác nhau, mà thread ám chỉ)

Trước khi bạn thực hiện bất kỳ điều gì, hãy đảm bảo bạn có bản sao lưu phím của bạn (có lẽ bạn đã làm điều này):

USE myDB 
GO 
BACKUP MASTER KEY TO FILE = 'path_to_file' 
    ENCRYPTION BY PASSWORD = 'password' 
GO 

Từ article này:

Khi bạn tạo một cơ sở dữ liệu chính Master, một bản sao được mã hóa với cung cấp mật khẩu và được lưu trữ trong cơ sở dữ liệu hiện tại . Một bản sao cũng được mã hóa bằng Khóa chính dịch vụ và được lưu trữ trong cơ sở dữ liệu chính. Bản sao của DMK cho phép máy chủ tự động giải mã DMK, một tính năng được gọi là "khóa tự động quản lý". Nếu không có tự động quản lý chủ chốt , bạn phải sử dụng câu lệnh KEY TỔNG MỞ và cung cấp một mật khẩu mỗi khi bạn muốn mã hóa và/hay giải mã dữ liệu sử dụng giấy chứng nhận và các phím dựa trên DMK để bảo mật. Với khóa tự động quản lý, OPEN MASTER KEY tuyên bố và mật khẩu không phải là bắt buộc.

+0

Cảm ơn Mitch, rất hữu ích. Và có, việc khôi phục bản sao lưu vào cơ sở dữ liệu mới đã hoạt động. Tôi đã có thể giải mã dữ liệu trong cơ sở dữ liệu mới trước đây được mã hóa trong cơ sở dữ liệu cũ. – Jon

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