Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

MSSQL SERVER - DI TRUYỀN CƠ SỞ DỮ LIỆU VỚI CLE (Mã hóa cấp độ ô)

Trong blog này, tôi đã thảo luận về các bước cần thiết để khôi phục cơ sở dữ liệu và truy xuất dữ liệu được mã hóa khi CLE (Mã hóa cấp độ ô) được triển khai.

Bảo mật dữ liệu là một trong những khía cạnh quan trọng trong quản lý cơ sở dữ liệu. Khi chúng tôi mã hóa dữ liệu nhạy cảm, có nhiều cách để đạt được điều này trong MS SQL Server như CLE, TDE và Luôn được Mã hóa. Khi bạn mã hóa dữ liệu trong ô bằng chứng chỉ hoặc khóa, điều này được gọi là CLE (Mã hóa cấp độ ô).

Sự cố:

  1. LỖI:- Một trong những vấn đề bạn có thể thấy là ứng dụng hoặc một số mã TSQL đang giải mã dữ liệu bắt đầu gây ra lỗi sau.
  1. Chức năng DecryptByKey không thể giải mã dữ liệu. Điều này sẽ không gây cho bạn bất kỳ lỗi nào tuy nhiên chức năng sẽ bị ảnh hưởng do thiếu khóa mã hóa.

Giải pháp

Vì chúng tôi không mở khóa chính của cơ sở dữ liệu nên không thể giải mã dữ liệu, đồng thời DMK cũng không được mã hóa bằng khóa chính của dịch vụ phiên bản hiện tại, do đó bạn gặp sự cố như vậy, chúng tôi có nhiều giải pháp để giải quyết vấn đề này, vì vậy hãy nói về chúng từng cái một .

Trường hợp 1 - Khi mật khẩu mã hóa khóa chính của cơ sở dữ liệu được biết.

Bước 1:- Mở khóa chính của cơ sở dữ liệu bằng mật khẩu và giải mã dữ liệu.

Bước 2:- Một trong những câu hỏi được đặt ra là khả năng mở khóa bằng mật khẩu trong mọi phiên hay bạn có thể hardcode cái này không? Câu trả lời là không, trong những trường hợp như vậy, bạn sẽ mã hóa lại khóa chính của cơ sở dữ liệu bằng khóa chính của dịch vụ phiên bản hiện tại và chạy các lệnh sau như được hiển thị trong ảnh chụp nhanh.

Bước 3:- Kiểm tra xem bạn có thể giải mã dữ liệu mà không cần mở khóa bằng mật khẩu hay không và câu trả lời là có vì khóa hiện cũng được mã hóa bằng khóa chính của dịch vụ hiện tại.

Bước 4:- nếu bạn muốn thay đổi mật khẩu mã hóa khóa chính của cơ sở dữ liệu, bạn cần hoàn thành bước sau

Trường hợp 2:Khi mật khẩu mã hóa khóa chính của cơ sở dữ liệu không xác định.

Trong trường hợp nếu bạn không biết về mật khẩu và nguồn có thể truy cập được. Chỉ cần sử dụng bước 4 từ trường hợp1 để thay đổi mật khẩu và làm theo quy trình ở bước 1. Còn lại, hãy sử dụng các bước sau thay thế.
Điều này chỉ có thể thực hiện được khi trường hợp cơ sở dữ liệu đang được khôi phục không sử dụng bất kỳ khóa nào khác vì các bước liên quan ở đây là khôi phục khóa chính của dịch vụ phiên bản.

Ví dụ:- Cách sao lưu khóa chính của phiên bản dịch vụ.

- Sao lưu khóa chính của dịch vụ BACKUP SERVICE MASTER KEY TO FILE = 'C:\Shared\service_master_key.key' ENCRYPTION BY PASSWORD = 'key_P@ssw0rdGqw0956565’

Lưu ý:- Các tệp sao lưu khóa rất nhạy cảm theo quan điểm bảo mật do đó hãy thêm tài khoản dịch vụ SQL trong tab bảo mật để đảm bảo máy chủ SQL có quyền truy cập vào tệp, nếu không bạn có thể gặp lỗi sau trong quá trình khôi phục.

Msg 15317, Level 16, State 2, Line 53 The master key file does not exist or has invalid format

Bước 1:- Khôi phục khóa chính của dịch vụ trước khi khôi phục cơ sở dữ liệu.

Bước 2:- Khôi phục cơ sở dữ liệu.

Bước 3:- Kiểm tra xem bạn có thể giải mã dữ liệu mà không cần mở khóa bằng mật khẩu hay không và câu trả lời là có vì khóa đang sử dụng cùng một khóa chính của dịch vụ khi chúng tôi khôi phục cả khóa dịch vụ phiên bản và cơ sở dữ liệu được mã hóa bởi nó.

Kết luận

Mỗi đối tượng trong MS SQL Server được sử dụng để mã hóa đều được bảo mật bằng các khóa chính của Dịch vụ cấp Phiên bản. Để quản lý mã hóa, điều quan trọng là phải hiểu rằng các đối tượng liên quan đến mã hóa được mã hóa thêm bằng mật khẩu, Khóa hoặc chứng chỉ.
Mỗi khi chúng tôi di chuyển cơ sở dữ liệu với mã hóa dữ liệu cấp độ tế bào, chúng tôi cần giải mã khóa và mã hóa lại chúng bằng khóa chính của phiên bản dịch vụ đích hoặc khôi phục khóa chính của phiên bản nguồn.

Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.