Tôi có một cơ sở dữ liệu đã được di chuyển khỏi một phiên bản SQL Server 2008R2 cũ và vào một cụm SQL Server 2012 AlwaysOn. Có một số trường trong cơ sở dữ liệu được mã hóa bằng cách sử dụng các tính năng mã hóa tích hợp của SQL Server (khóa chính, cert, khóa đối xứng.)Mã hóa với cụm AlwaysOn
Tôi đã chạy các lệnh sau đây trên cá thể AO QA của tôi (các bước tương tự chạy trên máy chủ cũ):
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'
CREATE CERTIFICATE myCert
WITH SUBJECT = 'password'
CREATE SYMMETRIC KEY myKeyName
WITH ALGORITHM = TRIPLE_DES
ENCRYPTION BY CERTIFICATE myCert
Bên cạnh đó tôi phải chạy các lệnh sau để giải mã một cách chính xác các dữ liệu:
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
Khi tôi chạy lệnh này sau đó tôi thấy tất cả các dữ liệu được giải mã:
OPEN SYMMETRIC KEY myKeyName
DECRYPTION BY CERTIFICATE myCert
select TOP 1000 userid, CONVERT(nVARCHAR(255),DECRYPTBYKEY(password)) from users
CLOSE SYMMETRIC KEY myKeyName
Cho đến nay rất tốt. Tuy nhiên, nếu tôi chạy các bước tương tự trên sản phẩm của tôi, AO cụm truy vấn này:
select TOP 1000 userid, CONVERT(nVARCHAR(255),DECRYPTBYKEY(password)) from users
trả về NULL cho mật khẩu. Để làm điều này điên hơn một chút, tuyên bố này (chạy trong bối cảnh môi trường QA) giải mã tất cả mọi thứ từ cả hai cơ sở dữ liệu tốt:
OPEN SYMMETRIC KEY myKeyName
DECRYPTION BY CERTIFICATE myCert
SELECT TOP 1000
userid,
CONVERT(nVARCHAR(255),DECRYPTBYKEY(password))
FROM users
SELECT TOP 1000
userid,
CONVERT(nVARCHAR(255),DECRYPTBYKEY(password))
FROM PRODUCTIONAO.prod_database.dbo.users
CLOSE SYMMETRIC KEY myKeyName
Tôi không chắc chắn lý do tại sao điều này sẽ làm việc trên dụ QA của tôi, nhưng không phải trong trường hợp sản xuất của tôi. Mọi sự trợ giúp sẽ rất được trân trọng!
Sự khác biệt nếu có giữa hộp QA và hộp Sản phẩm của bạn là gì? Có phải tất cả trên cùng một phần cứng không? Cùng một hệ điều hành? Cùng một Service Pack etc? –
Đã thêm một câu trả lời khác cho bạn. –
Chúng là các cụm AO khác nhau, nhưng hai máy trong mỗi cụm là giống hệt nhau. Các máy ảo. – dparsons