Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

เซิร์ฟเวอร์ MSSQL – ย้ายฐานข้อมูลด้วย CLE (การเข้ารหัสระดับเซลล์)

ในบล็อกนี้ ฉันได้พูดถึงขั้นตอนที่จำเป็นสำหรับการกู้คืนฐานข้อมูลและดึงข้อมูลที่เข้ารหัสเมื่อมีการใช้งาน CLE (Cell Level Encryption)

ความปลอดภัยของข้อมูลเป็นส่วนสำคัญในการจัดการฐานข้อมูล เมื่อเราเข้ารหัสข้อมูลที่ละเอียดอ่อน มีหลายวิธีที่จะทำให้สำเร็จใน MS SQL Server เช่น CLE, TDE และ Always Encrypted เมื่อคุณเข้ารหัสข้อมูลภายในเซลล์โดยใช้ใบรับรองหรือคีย์ สิ่งนี้เรียกว่า CLE (การเข้ารหัสระดับเซลล์)

ปัญหา:

  1. ข้อผิดพลาด:- ปัญหาหนึ่งที่คุณอาจเห็นคือแอปพลิเคชันหรือโค้ด TSQL บางส่วนซึ่งกำลังถอดรหัสข้อมูลเริ่มแสดงข้อผิดพลาดต่อไปนี้
  1. ฟังก์ชัน DecryptByKey ไม่สามารถถอดรหัสข้อมูลได้ การทำเช่นนี้จะไม่ทำให้เกิดข้อผิดพลาดใดๆ อย่างไรก็ตาม ฟังก์ชันการทำงานจะได้รับผลกระทบเนื่องจากไม่มีคีย์การเข้ารหัส

โซลูชัน

เนื่องจากเราไม่ได้เปิดมาสเตอร์คีย์ของฐานข้อมูลจึงไม่สามารถถอดรหัสข้อมูลได้ นอกจากนี้ DMK ไม่ได้เข้ารหัสโดยคีย์หลักของบริการอินสแตนซ์ปัจจุบัน ดังนั้นคุณจึงพบปัญหาดังกล่าว เรามีวิธีแก้ไขปัญหามากมายในการแก้ปัญหานี้ เรามาคุยกันทีละคน .

กรณีที่ 1 - เมื่อทราบรหัสผ่านการเข้ารหัสมาสเตอร์คีย์ของฐานข้อมูล

ขั้นตอนที่ 1:- เปิดมาสเตอร์คีย์ฐานข้อมูลโดยใช้รหัสผ่านและถอดรหัสข้อมูล

ขั้นตอนที่ 2:- หนึ่งในคำถามที่อยู่ในใจคือความเป็นไปได้ในการเปิดคีย์ด้วยรหัสผ่านในทุกเซสชันหรือคุณสามารถฮาร์ดโค้ดได้ คำตอบคือไม่ ในกรณีเช่นนี้ คุณจะเข้ารหัสมาสเตอร์คีย์ของฐานข้อมูลอีกครั้งด้วยคีย์มาสเตอร์ของบริการอินสแตนซ์ปัจจุบัน และเรียกใช้คำสั่งต่อไปนี้ตามที่แสดงในสแนปชอต

ขั้นตอนที่ 3:- ตรวจสอบว่าคุณสามารถถอดรหัสข้อมูลโดยไม่ต้องเปิดคีย์ด้วยรหัสผ่านหรือไม่ และคำตอบคือใช่ เพราะขณะนี้คีย์ถูกเข้ารหัสโดยคีย์หลักของบริการปัจจุบันด้วย

ขั้นตอนที่ 4:- หากคุณต้องการเปลี่ยนรหัสผ่านการเข้ารหัสมาสเตอร์คีย์ของฐานข้อมูล คุณต้องทำตามขั้นตอนต่อไปนี้

กรณีที่ 2:เมื่อไม่ทราบรหัสผ่านการเข้ารหัสมาสเตอร์คีย์ของฐานข้อมูล

ในกรณีที่คุณไม่ทราบรหัสผ่านและแหล่งที่มาสามารถเข้าถึงได้ เพียงใช้ขั้นตอนที่ 4 จาก case1 เพื่อเปลี่ยนรหัสผ่านและทำตามขั้นตอนในขั้นตอนที่ 1 มิฉะนั้นให้ใช้ขั้นตอนต่อไปนี้แทน
สิ่งนี้จะเกิดขึ้นได้ก็ต่อเมื่ออินสแตนซ์ที่ฐานข้อมูลกำลังได้รับการกู้คืนไม่ได้ใช้คีย์อื่นใด เนื่องจากขั้นตอนที่เกี่ยวข้องในที่นี้คือการกู้คืนคีย์หลักของบริการอินสแตนซ์

ตัวอย่าง:- วิธีสำรองข้อมูลคีย์หลักของบริการอินสแตนซ์

– สำรองคีย์หลักของบริการBACKUP SERVICE MASTER KEY TO FILE = 'C:\Shared\service_master_key.key' ENCRYPTION BY PASSWORD = 'key_P@ssw0rdGqw0956565’

หมายเหตุ:- ไฟล์สำรองคีย์มีความละเอียดอ่อนมากจากมุมมองด้านความปลอดภัย ดังนั้น ให้เพิ่มบัญชีบริการ SQL ในแท็บความปลอดภัยเพื่อให้แน่ใจว่าเซิร์ฟเวอร์ SQL สามารถเข้าถึงไฟล์ได้ มิฉะนั้น คุณอาจได้รับข้อผิดพลาดต่อไปนี้ในระหว่างกระบวนการกู้คืน

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

ขั้นตอนที่ 1:- กู้คืนคีย์หลักของบริการก่อนกู้คืนฐานข้อมูล

ขั้นตอนที่ 2:- กู้คืนฐานข้อมูล

ขั้นตอนที่ 3:- ตรวจสอบว่าคุณสามารถถอดรหัสข้อมูลโดยไม่ต้องเปิดคีย์ด้วยรหัสผ่านหรือไม่ และคำตอบคือ ใช่ เนื่องจากคีย์ใช้คีย์หลักบริการเดียวกัน ขณะที่เรากู้คืนทั้งคีย์บริการอินสแตนซ์และฐานข้อมูลที่เข้ารหัสด้วยคีย์ดังกล่าว

บทสรุป

แต่ละอ็อบเจ็กต์ใน MS SQL Server ที่ใช้สำหรับการเข้ารหัสจะปลอดภัยโดยมาสเตอร์คีย์ของบริการระดับอินสแตนซ์ สำหรับการจัดการการเข้ารหัส สิ่งสำคัญคือต้องเข้าใจว่าอ็อบเจ็กต์ที่เกี่ยวข้องกับการเข้ารหัสได้รับการเข้ารหัสเพิ่มเติมด้วยรหัสผ่าน คีย์ หรือใบรับรอง
ทุกครั้งที่เราย้ายฐานข้อมูลด้วยการเข้ารหัสข้อมูลระดับเซลล์ เราจำเป็นต้องถอดรหัสคีย์และเข้ารหัสใหม่ด้วยคีย์หลักของบริการอินสแตนซ์ปลายทางหรือกู้คืนมาสเตอร์คีย์ของอินสแตนซ์ต้นทาง

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณสามารถเริ่มการสนทนากับเราได้เช่นกัน