การปกปิดข้อมูลแบบไดนามิกในคลังข้อมูล Fabric

นําไปใช้กับ:✅ จุดสิ้นสุดการวิเคราะห์ SQL และ Warehouse ใน Microsoft Fabric

การมาสก์ข้อมูลแบบไดนามิกเป็นคุณลักษณะการปกป้องข้อมูลที่จํากัดการเปิดเผยข้อมูลที่ละเอียดอ่อนโดยการปิดบังผู้ใช้ที่ไม่มีสิทธิ์ ช่วยลดความยุ่งยากในการออกแบบและการเข้ารหัสความปลอดภัยในแอปพลิเคชันของคุณ

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

การมาสก์ข้อมูลแบบไดนามิกมีความสามารถเหล่านี้:

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

การมาสก์ข้อมูลแบบไดนามิกไม่ได้ป้องกันไม่ให้ผู้ใช้ฐานข้อมูลเชื่อมต่อโดยตรงกับฐานข้อมูลและเรียกใช้คิวรีอย่างละเอียดถี่ถ้วนซึ่งเปิดเผยส่วนของข้อมูลที่ละเอียดอ่อน ใช้การมาสก์ข้อมูลแบบไดนามิกร่วมกับคุณลักษณะด้านความปลอดภัยอื่นๆ ของ Fabric เช่น การรักษาความปลอดภัยระดับคอลัมน์และการรักษาความปลอดภัยระดับแถวเพื่อปกป้องข้อมูลที่ละเอียดอ่อนในฐานข้อมูล

ฟังก์ชันการมาสก์ข้อมูลแบบไดนามิก

กําหนดกฎการมาสก์บนคอลัมน์ในตารางเพื่อทําให้ข้อมูลในคอลัมน์นั้นสับสน มีหน้ากากสี่ประเภทให้เลือก

Function คำอธิบาย ตัวอย่าง
ค่าเริ่มต้น การมาสก์เต็มรูปแบบตามชนิดข้อมูลของเขตข้อมูลที่กําหนด

สําหรับชนิดข้อมูลสตริง ให้ใช้ XXXX (หรือน้อยกว่า) ถ้าขนาดของเขตข้อมูลน้อยกว่า 4 อักขระ (char, nchar, varchar, nvarchar, text, ntext)

สําหรับชนิดข้อมูลตัวเลข ให้ใช้ค่าศูนย์ (bigint, bit, decimal, int, money, numeric, smallint, smallmoney, tinyint, float, real)

สําหรับชนิดข้อมูลวันที่และเวลา ให้ใช้ (วันที่, วันที่เวลา 2, 1900-01-01 00:00:00.0000000, datetimeoffset, smalldatetime, time)

สําหรับชนิดข้อมูลไบนารี ใช้ไบต์เดียวของค่า ASCII 0 (ไบนารี varbinary รูปภาพ)
ไวยากรณ์ข้อกําหนดคอลัมน์ตัวอย่าง: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULL

ตัวอย่างของไวยากรณ์การเปลี่ยนแปลง: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()')
ส่งอีเมล วิธีการมาสก์ที่แสดงตัวอักษรแรกของที่อยู่อีเมลและคําต่อท้ายคงที่ ".com" ในรูปแบบที่อยู่อีเมล aXXX@XXXX.com ไวยากรณ์ข้อกําหนดตัวอย่าง: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL

ตัวอย่างของไวยากรณ์การเปลี่ยนแปลง: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
สุ่ม ฟังก์ชันมาสก์แบบสุ่มสําหรับใช้กับชนิดตัวเลขใด ๆ เพื่อมาสก์ค่าเดิมด้วยค่าสุ่มภายในช่วงที่ระบุ ไวยากรณ์ข้อกําหนดตัวอย่าง: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])')

ตัวอย่างของไวยากรณ์การเปลี่ยนแปลง: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
สตริงแบบกําหนดเอง วิธีการมาสก์ที่แสดงตัวอักษรตัวแรกและตัวสุดท้าย และเพิ่มสตริงช่องว่างภายในแบบกําหนดเองตรงกลาง prefix,[padding],suffix

ถ้าค่าเดิมสั้นเกินไปเพื่อทําให้รูปแบบทั้งหมดเสร็จสมบูรณ์ ส่วนหนึ่งของคํานําหน้าหรือคําต่อท้ายจะไม่แสดงขึ้น
ไวยากรณ์ข้อกําหนดตัวอย่าง: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULL

ตัวอย่างของไวยากรณ์การเปลี่ยนแปลง: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')

ซึ่งจะเปลี่ยนหมายเลขโทรศัพท์เช่น 555.123.1234 เป็น5XXXXXXX

ตัวอย่างเพิ่มเติม:

ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(5,"XXXXXXX",0)')

ซึ่งจะเปลี่ยนหมายเลขโทรศัพท์เช่น 555.123.1234 เป็น555.1XXXXXXX

สําหรับตัวอย่างเพิ่มเติม ดูวิธีการใช้การมาสก์ข้อมูลแบบไดนามิกใน Fabric คลังข้อมูล

สิทธิ์สําหรับการมาสก์ข้อมูลแบบไดนามิก

ใน Fabric คลังข้อมูล ผู้ใช้จะเห็นข้อมูลที่มาสก์เมื่อพวกเขาสอบถามคอลัมน์ที่มาสก์ หากพวกเขาไม่ใช่สมาชิกของบทบาท ผู้ดูแลระบบ สมาชิก หรือผู้สนับสนุนในพื้นที่ทํางาน หรือไม่มีสิทธิ์ที่ยกระดับบนคลังสินค้า

ตารางต่อไปนี้แสดงรายการสิทธิ์ที่จําเป็นสําหรับการดําเนินการมาสก์ข้อมูลแบบไดนามิกแต่ละรายการ:

การดำเนินการ การอนุญาตที่จําเป็น
สร้างตารางที่มีคอลัมน์ที่มาสก์ CREATE TABLE และ ALTER ในสคีมา
เพิ่ม แทนที่ หรือเอามาสก์บนคอลัมน์ออก ALTER ANY MASK และ ALTER บนโต๊ะ
ดูข้อมูลที่มาสก์ SELECT บนโต๊ะ
ดูข้อมูลที่ไม่ปิดบัง UNMASK บนคอลัมน์หรือ CONTROL บนฐานข้อมูล

มอบให้ ALTER ANY MASK เจ้าหน้าที่รักษาความปลอดภัย ให้สิทธิ์ UNMASK แก่ผู้ใช้เพื่ออนุญาตให้ผู้ใช้นั้นดึงข้อมูลที่ไม่ได้ปิดบังจากคอลัมน์ที่มาสก์

CONTROLสิทธิ์ในฐานข้อมูลประกอบด้วยALTER ANY MASKทั้ง และ UNMASKดังนั้นผู้ใช้ที่มีCONTROLจึงสามารถดูข้อมูลที่ไม่ได้ปิดบังได้ ผู้ใช้หรือบทบาทผู้ดูแลระบบ เช่น ผู้ดูแลระบบ สมาชิก หรือผู้ CONTROL สนับสนุนมีสิทธิ์ในฐานข้อมูลตามการออกแบบ และสามารถดูข้อมูลที่ไม่ได้ปิดบังได้ตามค่าเริ่มต้น สิทธิ์แบบยกระดับบนคลังสินค้ารวมถึง CONTROL สิทธิ์

การพิจารณาด้านความปลอดภัย: เลี่ยงการปิดบังโดยใช้เทคนิคการอนุมานหรือกําลังดุร้าย

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

ตัวอย่างเช่น ผู้ใช้ที่มีสิทธิ์ในการเรียกใช้คิวรีบนคลังสินค้าสามารถคาดเดาค่าเพื่ออนุมานข้อมูลที่มาสก์ได้ สมมติว่า คุณกําหนดมาสก์บน [Employee].[Salary] คอลัมน์ ผู้ใช้เชื่อมต่อโดยตรงกับฐานข้อมูลและเริ่มคาดเดาค่า และในที่สุดก็อนุมา [Salary] นค่าใน Employees ตาราง พวกเขาเรียกใช้แบบสอบถามช่วงกับ Employees ตาราง:

SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;

แบบสอบถามจะส่งกลับ:

ID ชื่อ เงินเดือน
62543 เจน โด 0
91245 จอห์น สมิธ 0

แม้ว่า Salary คอลัมน์จะถูกปิดบัง (ค่าที่แสดงเป็น 0) ประโยคยืนยัน WHERE ว่าพนักงานทั้งสองมีเงินเดือนระหว่าง 99,999 ถึง 100,001 ดอลลาร์ อย่าใช้การมาสก์ข้อมูลแบบไดนามิกเพียงอย่างเดียวเพื่อรักษาความปลอดภัยข้อมูลที่ละเอียดอ่อนอย่างสมบูรณ์จากผู้ใช้ที่มีสิทธิ์เข้าถึงคิวรีไปยังตําแหน่งข้อมูลการวิเคราะห์คลังสินค้าหรือ SQL การมาสก์ข้อมูลแบบไดนามิกเหมาะสําหรับการป้องกันการเปิดเผยข้อมูลที่ละเอียดอ่อนโดยไม่ได้ตั้งใจ แต่ไม่ได้ป้องกันเจตนาร้ายในการอนุมานข้อมูลพื้นฐาน

จัดการความปลอดภัยระดับอ็อบเจ็กต์อย่างเหมาะสมด้วย สิทธิ์แบบละเอียดของ SQL และปฏิบัติตามหลักการของสิทธิ์ขั้นต่ําเสมอ

ขั้นตอนถัดไป