ใช้การรักษาความปลอดภัยระดับแถวในคลังข้อมูล Microsoft Fabric
นําไปใช้กับ:✅ จุดสิ้นสุดการวิเคราะห์ SQL และ Warehouse ใน Microsoft Fabric
การรักษาความปลอดภัยระดับแถว (RLS) ใน Fabric Warehouse และจุดสิ้นสุดการวิเคราะห์ SQL ช่วยให้คุณสามารถควบคุมการเข้าถึงแถวในตารางฐานข้อมูลตามบทบาทและเพรดิเคตของผู้ใช้ สําหรับข้อมูลเพิ่มเติม โปรดดู การรักษาความปลอดภัยระดับแถวในคลังข้อมูล Fabric
คู่มือนี้จะแนะนําขั้นตอนในการใช้การรักษาความปลอดภัยระดับแถวใน Microsoft Fabric Warehouse หรือจุดสิ้นสุดการวิเคราะห์ SQL
ข้อกำหนดเบื้องต้น
ก่อนที่คุณจะเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:
- พื้นที่ทํางาน Fabric ที่มีความจุที่ใช้งานอยู่หรือความจุรุ่นทดลองใช้
- จุดสิ้นสุดของ Fabric Warehouse หรือ SQL Analytics บน Lakehouse
- สิทธิ์ผู้ดูแลระบบ สมาชิก หรือผู้สนับสนุนบนพื้นที่ทํางาน หรือสิทธิ์การยกระดับบนคลังสินค้าหรือจุดสิ้นสุดการวิเคราะห์ SQL
1. เชื่อมต่อ
- เข้าสู่ระบบโดยใช้บัญชีด้วยการเข้าถึงแบบยกระดับบนจุดสิ้นสุดของ Warehouse หรือ SQL Analytics (ทั้งบทบาทผู้ดูแลระบบ/สมาชิก/ผู้สนับสนุนบนพื้นที่ทํางานหรือสิทธิ์การควบคุมบนคลังสินค้าหรือจุดสิ้นสุดการวิเคราะห์ SQL)
- เปิดพื้นที่ทํางาน Fabric และนําทางไปยังจุดสิ้นสุด Warehouse หรือ SQL Analytics ที่คุณต้องการใช้การรักษาความปลอดภัยระดับแถว
2. กําหนดนโยบายความปลอดภัย
กําหนดบทบาทและเพรดิเคตที่คุณต้องการใช้เพื่อควบคุมการเข้าถึงข้อมูล บทบาทจะกําหนดว่าใครสามารถเข้าถึงข้อมูลและเพรดิเคตได้กําหนดเกณฑ์สําหรับการเข้าถึง
สร้างเพรดิเคตความปลอดภัย เพรดิเคตความปลอดภัยเป็นเงื่อนไขที่กําหนดแถวที่ผู้ใช้สามารถเข้าถึงได้ คุณสามารถสร้างเพรดิเคตความปลอดภัยเป็นฟังก์ชันที่ให้ค่าตารางแบบอินไลน์ได้ แบบฝึกหัดแบบง่ายนี้ถือว่ามีคอลัมน์ในตาราง
UserName_column
ข้อมูลของคุณที่มีชื่อผู้ใช้ที่เกี่ยวข้องที่เติมโดยฟังก์ชันระบบ USER_NAME()-- Creating schema for Security CREATE SCHEMA Security; GO -- Creating a function for the SalesRep evaluation CREATE FUNCTION Security.tvf_securitypredicate(@UserName AS varchar(50)) RETURNS TABLE WITH SCHEMABINDING AS RETURN SELECT 1 AS tvf_securitypredicate_result WHERE @UserName = USER_NAME(); GO -- Using the function to create a Security Policy CREATE SECURITY POLICY YourSecurityPolicy ADD FILTER PREDICATE Security.tvf_securitypredicate(UserName_column) ON sampleschema.sampletable WITH (STATE = ON); GO
แทนที่
YourSecurityPolicy
ด้วยชื่อtvf_securitypredicate
นโยบายของคุณ ด้วยชื่อของฟังก์ชันsampleschema
เพรดิเคตของคุณ ด้วยชื่อของ Schema ของคุณและsampletable
ด้วยชื่อของตารางเป้าหมายของคุณแทนที่
UserName_column
ด้วยคอลัมน์ในตารางของคุณที่ประกอบด้วยชื่อผู้ใช้แทนที่
WHERE @UserName = USER_NAME();
ด้วยWHERE
ส่วนคําสั่งที่ตรงกับตัวกรองความปลอดภัยตามเพรดิเคตที่ต้องการ ตัวอย่างเช่น การดําเนินการนี้จะกรองข้อมูลที่UserName
คอลัมน์แมปกับ@UserName
พารามิเตอร์ ตรงกับผลลัพธ์ของฟังก์ชันระบบ USER_NAME()ทําซ้ําขั้นตอนเหล่านี้เพื่อสร้างนโยบายความปลอดภัยสําหรับตารางอื่น ถ้าจําเป็น
3. ทดสอบการรักษาความปลอดภัยระดับแถว
เข้าสู่ระบบ Fabric ในฐานะผู้ใช้ที่เป็นสมาชิกของบทบาทที่มีนโยบายความปลอดภัยที่เกี่ยวข้อง ใช้คิวรีต่อไปนี้เพื่อตรวจสอบค่าที่ควรจับคู่ในตาราง
SELECT USER_NAME()
สอบถามตารางฐานข้อมูลเพื่อตรวจสอบว่าการรักษาความปลอดภัยระดับแถวทํางานตามที่คาดไว้หรือไม่ ผู้ใช้ควรเห็นเฉพาะข้อมูลที่เป็นไปตามเพรดิเคตความปลอดภัยที่กําหนดไว้ในบทบาทของพวกเขาเท่านั้น ตัวอย่างเช่น:
SELECT * FROM sampleschema.sampletable
ผลลัพธ์การกรองที่คล้ายกันสําหรับผู้ใช้จะถูกกรองด้วยแอปพลิเคชันอื่น ๆ ที่ใช้การรับรองความถูกต้อง Microsoft Entra สําหรับการเข้าถึงฐานข้อมูล สําหรับข้อมูลเพิ่มเติม ดูการรับรองความถูกต้องของ Microsoft Entra เป็นทางเลือกในการรับรองความถูกต้อง SQL ใน Microsoft Fabric
4. ตรวจสอบและรักษาความปลอดภัยระดับแถว
ตรวจสอบและอัปเดตนโยบายการรักษาความปลอดภัยระดับแถวของคุณเป็นประจําตามข้อกําหนดด้านความปลอดภัยของคุณที่พัฒนาขึ้น ติดตามการกําหนดบทบาทและตรวจสอบให้แน่ใจว่าผู้ใช้มีการเข้าถึงที่เหมาะสม