แชร์ผ่าน


ใช้การรักษาความปลอดภัยระดับแถวในคลังข้อมูล Microsoft Fabric

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

การรักษาความปลอดภัยระดับแถว (RLS) ใน Fabric Warehouse และจุดสิ้นสุดการวิเคราะห์ SQL ช่วยให้คุณสามารถควบคุมการเข้าถึงแถวในตารางฐานข้อมูลตามบทบาทและเพรดิเคตของผู้ใช้ สําหรับข้อมูลเพิ่มเติม โปรดดู การรักษาความปลอดภัยระดับแถวในคลังข้อมูล Fabric

คู่มือนี้จะแนะนําขั้นตอนในการใช้การรักษาความปลอดภัยระดับแถวใน Microsoft Fabric Warehouse หรือจุดสิ้นสุดการวิเคราะห์ SQL

ข้อกำหนดเบื้องต้น

ก่อนที่คุณจะเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:

  1. พื้นที่ทํางาน Fabric ที่มีความจุที่ใช้งานอยู่หรือความจุรุ่นทดลองใช้
  2. จุดสิ้นสุดของ Fabric Warehouse หรือ SQL Analytics บน Lakehouse
  3. สิทธิ์ผู้ดูแลระบบ สมาชิก หรือผู้สนับสนุนบนพื้นที่ทํางาน หรือสิทธิ์การยกระดับบนคลังสินค้าหรือจุดสิ้นสุดการวิเคราะห์ SQL

1. เชื่อมต่อ

  1. เข้าสู่ระบบโดยใช้บัญชีด้วยการเข้าถึงแบบยกระดับบนจุดสิ้นสุดของ Warehouse หรือ SQL Analytics (ทั้งบทบาทผู้ดูแลระบบ/สมาชิก/ผู้สนับสนุนบนพื้นที่ทํางานหรือสิทธิ์การควบคุมบนคลังสินค้าหรือจุดสิ้นสุดการวิเคราะห์ SQL)
  2. เปิดพื้นที่ทํางาน Fabric และนําทางไปยังจุดสิ้นสุด Warehouse หรือ SQL Analytics ที่คุณต้องการใช้การรักษาความปลอดภัยระดับแถว

2. กําหนดนโยบายความปลอดภัย

  1. กําหนดบทบาทและเพรดิเคตที่คุณต้องการใช้เพื่อควบคุมการเข้าถึงข้อมูล บทบาทจะกําหนดว่าใครสามารถเข้าถึงข้อมูลและเพรดิเคตได้กําหนดเกณฑ์สําหรับการเข้าถึง

  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 
    
  3. แทนที่ YourSecurityPolicy ด้วยชื่อ tvf_securitypredicate นโยบายของคุณ ด้วยชื่อของฟังก์ชัน sampleschema เพรดิเคตของคุณ ด้วยชื่อของ Schema ของคุณและ sampletable ด้วยชื่อของตารางเป้าหมายของคุณ

  4. แทนที่ UserName_column ด้วยคอลัมน์ในตารางของคุณที่ประกอบด้วยชื่อผู้ใช้

  5. แทนที่ WHERE @UserName = USER_NAME(); ด้วย WHERE ส่วนคําสั่งที่ตรงกับตัวกรองความปลอดภัยตามเพรดิเคตที่ต้องการ ตัวอย่างเช่น การดําเนินการนี้จะกรองข้อมูลที่UserNameคอลัมน์แมปกับ@UserNameพารามิเตอร์ ตรงกับผลลัพธ์ของฟังก์ชันระบบ USER_NAME()

  6. ทําซ้ําขั้นตอนเหล่านี้เพื่อสร้างนโยบายความปลอดภัยสําหรับตารางอื่น ถ้าจําเป็น

3. ทดสอบการรักษาความปลอดภัยระดับแถว

  1. เข้าสู่ระบบ Fabric ในฐานะผู้ใช้ที่เป็นสมาชิกของบทบาทที่มีนโยบายความปลอดภัยที่เกี่ยวข้อง ใช้คิวรีต่อไปนี้เพื่อตรวจสอบค่าที่ควรจับคู่ในตาราง

    SELECT USER_NAME() 
    
  2. สอบถามตารางฐานข้อมูลเพื่อตรวจสอบว่าการรักษาความปลอดภัยระดับแถวทํางานตามที่คาดไว้หรือไม่ ผู้ใช้ควรเห็นเฉพาะข้อมูลที่เป็นไปตามเพรดิเคตความปลอดภัยที่กําหนดไว้ในบทบาทของพวกเขาเท่านั้น ตัวอย่างเช่น:

    SELECT * FROM sampleschema.sampletable
    
  3. ผลลัพธ์การกรองที่คล้ายกันสําหรับผู้ใช้จะถูกกรองด้วยแอปพลิเคชันอื่น ๆ ที่ใช้การรับรองความถูกต้อง Microsoft Entra สําหรับการเข้าถึงฐานข้อมูล

4. ตรวจสอบและรักษาความปลอดภัยระดับแถว

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