การรักษาความปลอดภัยระดับแถว (RLS) ด้วย Power BI

การรักษาความปลอดภัยระดับแถว (RLS) ด้วย Power BI สามารถใช้เพื่อจํากัดการเข้าถึงข้อมูลสําหรับผู้ใช้ที่กําหนด ตัวกรองจํากัดการเข้าถึงข้อมูลในระดับแถว และคุณสามารถกําหนดตัวกรองภายในบทบาทได้ ในบริการของ Power BI ผู้ใช้ที่มีสิทธิ์เข้าถึงพื้นที่ทํางานจะสามารถเข้าถึงแบบจําลองความหมายในพื้นที่ทํางานนั้นได้ RLS จํากัดการเข้าถึงข้อมูลสําหรับผู้ใช้ที่ มีสิทธิ์ของผู้ชม เท่านั้น ซึ่งใช้ไม่ได้กับผู้ดูแลระบบ สมาชิก หรือผู้สนับสนุน

คุณสามารถกําหนดค่า RLS สําหรับแบบจําลองข้อมูลที่นําเข้าไปยัง Power BI ด้วย Power BI ได้ คุณยังสามารถกําหนดค่า RLS บนแบบจําลองความหมายที่กําลังใช้ DirectQuery เช่น SQL Server สําหรับการเชื่อมต่อสดของ Analysis Services หรือ Azure Analysis Services คุณกําหนดค่าการรักษาความปลอดภัยระดับแถวในแบบจําลอง ไม่ใช่ใน Power BI ตัวเลือกความปลอดภัยจะไม่แสดงสําหรับแบบจําลองความหมายการเชื่อมต่อสด

กําหนดบทบาทและกฎใน Power BI Desktop

คุณสามารถกําหนดบทบาทและกฎภายใน Power BI Desktop ได้ ด้วยตัวแก้ไขนี้ คุณสามารถสลับระหว่างการใช้อินเทอร์เฟซดรอปดาวน์เริ่มต้นและอินเทอร์เฟซ DAX เมื่อคุณเผยแพร่ไปยัง Power BI คุณยังได้เผยแพร่ไปยังข้อกําหนดบทบาทด้วย

เมื่อต้องกําหนดบทบาทความปลอดภัย:

  1. นําเข้าข้อมูลลงในรายงาน Power BI Desktop ของคุณ หรือกําหนดค่าการเชื่อมต่อ DirectQuery

    หมายเหตุ

    คุณไม่สามารถกําหนดบทบาทภายใน Power BI Desktop สําหรับการเชื่อมต่อแบบสดของ Analysis Services คุณจําเป็นต้องดําเนินการดังกล่าวภายในแบบจําลอง Analysis Services

  2. จากแท็บการวางรูปแบบ เลือกจัดการบทบาท

    ภาพหน้าจอของแท็บการวางรูปแบบ โดยเน้นที่จัดการบทบาท

  3. จากหน้าต่าง จัดการบทบาท เลือก ใหม่ เพื่อสร้างบทบาทใหม่

    สกรีนช็อตของหน้าต่างจัดการบทบาท โดยเน้นปุ่มสร้างบทบาทใหม่

  4. ภายใต้ บทบาท ระบุชื่อสําหรับบทบาท และเลือก ป้อน

    ภาพหน้าจอของหน้าต่างจัดการบทบาท โดยเน้นการเปลี่ยนชื่อบทบาท

    หมายเหตุ

    คุณไม่สามารถกําหนดบทบาทด้วยเครื่องหมายจุลภาค ตัวอย่างเช่นLondon,ParisRole

  5. ภายใต้ เลือกตาราง เลือกตารางที่คุณต้องการใช้ตัวกรองการรักษาความปลอดภัยระดับแถว

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

    สกรีนช็อตของตัวแก้ไขเริ่มต้นของหน้าต่าง จัดการบทบาท สําหรับการกําหนดการรักษาความปลอดภัยระดับแถว

    หมายเหตุ

    ไม่สามารถกําหนดตัวกรองความปลอดภัยระดับแถวทั้งหมดที่สนับสนุนใน Power BI ได้โดยใช้ตัวแก้ไขเริ่มต้น ข้อจํากัดรวมถึงนิพจน์ที่สามารถกําหนดได้โดยใช้ DAX รวมถึงกฎแบบไดนามิกเช่น username() หรือ userprincipalname() เท่านั้น หากต้องการกําหนดบทบาทโดยใช้สวิตช์ตัวกรองเหล่านี้เพื่อใช้ตัวแก้ไข DAX

  7. อีกทางหนึ่งคือเลือก สลับไปยังตัวแก้ไข DAX เพื่อสลับไปใช้ตัวแก้ไข DAX เพื่อกําหนดบทบาทของคุณ นิพจน์ DAX ส่งกลับค่าจริงหรือเท็จ ตัวอย่างเช่น: [Entity ID] = “Value” ตัวแก้ไข DAX จะเสร็จสมบูรณ์ด้วยการกรอกข้อมูลอัตโนมัติสําหรับสูตร (intellisense) คุณสามารถเลือกกล่องกาเครื่องหมายเหนือกล่องนิพจน์เพื่อตรวจสอบความถูกต้องของนิพจน์และปุ่ม X ที่อยู่เหนือกล่องนิพจน์เพื่อแปลงกลับการเปลี่ยนแปลงได้

    ภาพหน้าจอของหน้าต่างจัดการบทบาท โดยเน้นนิพจน์ DAX ตัวอย่าง

    หมายเหตุ

    คุณสามารถใช้ username() ภายในนิพจน์นี้ได้ โปรดทราบว่า username() มีรูปแบบของ DOMAIN\username ภายใน Power BI Desktop ภายในบริการของ Power BI และเซิร์ฟเวอร์รายงาน Power BI นั้นอยู่ในรูปแบบของชื่อผู้ใช้หลัก (UPN) ของผู้ใช้ อีกวิธีหนึ่งคือ คุณสามารถใช้ userprincipalname() ซึ่งจะส่งผู้ใช้กลับในรูปแบบของชื่อ username@contoso.comหลักเสมอ นอกจากนี้ ในกล่องนิพจน์นี้ ให้ใช้เครื่องหมายจุลภาคเพื่อแยกอาร์กิวเมนต์ฟังก์ชัน DAX แม้ว่าคุณจะใช้ตําแหน่งที่ตั้งที่ปกติใช้เครื่องหมายอัฒภาค (เช่น ฝรั่งเศสหรือเยอรมัน)

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

    ภาพหน้าจอของกล่องโต้ตอบที่ยืนยันว่าคุณต้องการสลับไปยังตัวแก้ไขเริ่มต้น

    หมายเหตุ

    ในกล่องนิพจน์นี้ ใช้เครื่องหมายจุลภาคเพื่อแยกอาร์กิวเมนต์ฟังก์ชัน DAX แม้ว่าคุณจะใช้ตําแหน่งที่ตั้งที่ปกติใช้เครื่องหมายอัฒภาค (เช่น ฝรั่งเศสหรือเยอรมัน)

  9. เลือก บันทึก

คุณไม่สามารถกําหนดผู้ใช้ให้กับบทบาทภายใน Power BI Desktop คุณกําหนดเอกสารเหล่านั้นในบริการของ Power BI คุณสามารถเปิดใช้งานการรักษาความปลอดภัยแบบไดนามิกภายใน Power BI Desktop ได้โดยการใช้ ฟังก์ชัน DAX username() หรือ userprincipalname() และกําหนดค่าความสัมพันธ์ที่เหมาะสม

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

สําหรับข้อมูลเพิ่มเติม โปรดดู ที่ตัวกรองไขว้แบบสองทิศทางที่ใช้ DirectQuery ใน Power BI และ บทความเชิงเทคนิคของการรักษาความปลอดภัยแบบลําจองภาษา BI แบบตาราง

สกรีนช็อตของการตั้งค่าความสัมพันธ์แบบจําลองเพื่อใช้ตัวกรองความปลอดภัยในทั้งสองทิศทาง

จัดการความปลอดภัยบนแบบจําลองของคุณ

หากต้องการจัดการความปลอดภัยบนแบบจําลองความหมายของคุณ ให้เปิดพื้นที่ทํางานที่คุณบันทึกแบบจําลองความหมายของคุณใน Fabric และทําตามขั้นตอนต่อไปนี้:

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

    สกรีนช็อตแสดงเมนูตัวเลือกเพิ่มเติมในเมนูการนําทาง

  2. เลือก ความปลอดภัย

    สกรีนช็อตที่แสดงเมนูตัวเลือกเพิ่มเติมที่มีการเลือกความปลอดภัย

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

การทํางานกับสมาชิก

เพิ่มสมาชิก

ในบริการของ Power BI คุณสามารถเพิ่มสมาชิกให้กับบทบาทโดยการพิมพ์ในที่อยู่อีเมลหรือชื่อของผู้ใช้หรือกลุ่มความปลอดภัย คุณไม่สามารถเพิ่มกลุ่มที่สร้างขึ้นใน Power BI คุณสามารถเพิ่มสมาชิก ภายนอกองค์กรของคุณได้

คุณสามารถใช้กลุ่มต่อไปนี้ในการตั้งค่าการรักษาความปลอดภัยระดับแถว

  • กลุ่มการแจกจ่าย
  • กลุ่มที่เปิดใช้งานจดหมาย
  • Microsoft Entra Security Group

โปรดทราบว่ากลุ่ม Microsoft 365 ไม่ได้รับการสนับสนุนและไม่สามารถเพิ่มไปยังบทบาทใด ๆ ได้

สกรีนช็อตที่แสดงวิธีการเพิ่มสมาชิก

คุณยังสามารถดูจํานวนสมาชิกที่เป็นส่วนหนึ่งของบทบาทจากตัวเลขในวงเล็บที่อยู่ถัดจากชื่อบทบาท หรือถัดจากสมาชิก

สกรีนช็อตที่แสดงสมาชิกในบทบาท

ลบสมาชิก

คุณสามารถลบสมาชิกได้โดยการเลือก X ที่อยู่ถัดจากชื่อของพวกเขา

สกรีนช็อตที่แสดงวิธีการลบสมาชิก

การตรวจสอบบทบาทภายในบริการของ Power BI

คุณสามารถตรวจสอบว่าบทบาทที่คุณกําหนดทํางานถูกต้องในบริการของ Power BI โดยการทดสอบบทบาท

  1. เลือกตัวเลือก เพิ่มเติม (...) ที่อยู่ถัดจากบทบาท
  2. เลือก ทดสอบในฐานะบทบาท

ภาพหน้าจอของตัวเลือกทดสอบในฐานะบทบาท

ระบบจะเปลี่ยนเส้นทางคุณไปยังรายงานที่เผยแพร่จาก Power BI Desktop ด้วยแบบจําลองความหมายนี้ ถ้ามีอยู่ แดชบอร์ดไม่พร้อมใช้งานสําหรับการทดสอบโดยใช้ตัวเลือกทดสอบในฐานะบทบาท

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

สกรีนช็อตของตอนนี้ดูเป็นรายการแบบเลื่อนลงสําหรับบุคคลที่ระบุ

ทดสอบรายงานอื่น ๆ ที่เชื่อมต่อกับแบบจําลองความหมายโดยการเลือก ดู ในส่วนหัวของหน้า คุณสามารถทดสอบรายงานที่อยู่ในพื้นที่ทํางานเดียวกันกับแบบจําลองความหมายของคุณได้เท่านั้น

สกรีนช็อตของการดูเพื่อเลือกรายงานที่แตกต่างกันเพื่อทดสอบ

เมื่อต้องการกลับไปยังการดูปกติ ให้เลือก กลับไปยังการรักษาความปลอดภัยระดับแถว

หมายเหตุ

คุณลักษณะ ทดสอบในฐานะบทบาท ใช้ไม่ได้กับแบบจําลอง DirectQuery ที่เปิดใช้งานการลงชื่อเข้าระบบครั้งเดียว (SSO) นอกจากนี้ ไม่สามารถตรวจสอบทุกแง่มุมของรายงานได้ในคุณลักษณะทดสอบในฐานะบทบาท รวมถึงการแสดงภาพข้อมูล Q&A การแสดงภาพข้อมูลเชิงลึกด่วน และCopilot

การใช้ฟังก์ชัน DAX username() หรือ userprincipalname()

คุณสามารถใช้ประโยชน์จากฟังก์ชัน DAX username() หรือ userprincipalname() ภายในชุดข้อมูลของคุณได้ คุณสามารถใช้ฟังก์ชันเหล่านี้ภายในนิพจน์ใน Power BI Desktop เมื่อคุณเผยแพร่แบบจําลองของคุณ จะมีการใช้แบบจําลองภายในบริการของ Power BI

ภายใน Power BI Desktop username() จะส่งผู้ใช้กลับในรูปแบบของ DOMAIN\User และ userprincipalname() จะส่งผู้ใช้กลับในรูปแบบของuser@contoso.com

ภายในบริการของ Power BI username() และ userprincipalname() จะส่งกลับชื่อผู้ใช้หลัก (UPN) ของผู้ใช้ ซึ่งมีลักษณะคล้ายกับที่อยู่อีเมล

ใช้ RLS กับพื้นที่ทํางานใน Power BI

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

ข้อควรพิจารณาและข้อจำกัด

คุณสามารถดูข้อจํากัดปัจจุบันสําหรับการรักษาความปลอดภัยระดับแถวบนแบบจําลองคลาวด์ได้ที่นี่:

  • ถ้าก่อนหน้านี้คุณได้กําหนดบทบาทและกฎในบริการของ Power BI แล้ว คุณต้องสร้างขึ้นใหม่ใน Power BI Desktop
  • คุณสามารถกําหนด RLS บนแบบจําลองความหมายที่สร้างขึ้นด้วย Power BI Desktop เท่านั้น ถ้าคุณต้องการเปิดใช้งาน RLS สําหรับแบบจําลองเชิงความหมายที่สร้างขึ้นด้วย Excel คุณต้องแปลงไฟล์ของคุณให้เป็นไฟล์ Power BI Desktop (PBIX) ก่อน เรียนรู้เพิ่มเติม
  • ไม่สามารถเพิ่มโครงร่างสําคัญของบริการลงในบทบาท RLS ได้ ดังนั้น RLS จะไม่ถูกนําไปใช้กับแอปโดยใช้บริการหลักเป็นข้อมูลประจําตัวที่มีผลบังคับใช้ขั้นสุดท้าย
  • สนับสนุนเฉพาะการนําเข้าและการเชื่อมต่อ DirectQuery เท่านั้น การเชื่อมต่อแบบสดไปยัง Analysis Services ได้รับการจัดการในแบบจําลองภายในองค์กร
  • คุณลักษณะ ทดสอบในฐานะบทบาท/ดูในฐานะบทบาท ใช้ไม่ได้กับแบบจําลอง DirectQuery ที่เปิดใช้งานการลงชื่อเข้าระบบครั้งเดียว (SSO)
  • คุณลักษณะ ทดสอบในฐานะบทบาท/มุมมองในฐานะบทบาท แสดงเฉพาะรายงานจากพื้นที่ทํางานของแบบจําลองเชิงความหมายเท่านั้น
  • คุณลักษณะทดสอบเป็นบทบาท/ดูในฐานะบทบาทใช้ไม่ได้กับรายงานที่มีการแบ่งหน้า

โปรดทราบว่าหากรายงาน Power BI อ้างอิงแถวที่มีการกําหนดค่า RLS ข้อความเดียวกันจะแสดงเป็น สําหรับเขตข้อมูลที่ถูกลบหรือไม่มีอยู่ สําหรับผู้ใช้เหล่านี้ ดูเหมือนว่ารายงานจะเสียหาย

คำถามที่ถามบ่อย

คําถาม:จะเกิดอะไรขึ้นถ้าฉันเคยสร้างบทบาทและกฎสําหรับชุดข้อมูลในบริการของ Power BI ก่อนหน้านี้ ถ้าฉันไม่ทําอะไรเลย
คําตอบ: ไม่ ภาพวิชวลจะไม่สามารถแสดงได้อย่างถูกต้อง คุณจะต้องสร้างบทบาทและกฎภายใน Power BI Desktop อีกครั้งแล้วเผยแพร่ไปยังบริการของ Power BI

คําถาม: ฉันสามารถสร้างบทบาทเหล่านี้สําหรับแหล่งข้อมูล Analysis Services ได้หรือไม่
คําตอบ: ใช่ ถ้าคุณนําเข้าข้อมูลลงใน Power BI Desktop ถ้าคุณกําลังใช้การเชื่อมต่อสด คุณไม่สามารถกําหนดค่า RLS ภายในบริการของ Power BI คุณกําหนด RLS ใน Analysis Services แบบจําลองภายในองค์กร

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

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

คําถาม: แหล่งข้อมูลของฉันมีการกําหนดบทบาทความปลอดภัยอยู่แล้ว (ตัวอย่างเช่น บทบาท SQL Server หรือบทบาท SAP BW) ความสัมพันธ์ระหว่างบทบาทเหล่านี้กับ RLS คืออะไร
คําตอบ: คําตอบขึ้นอยู่กับว่าคุณกําลังนําเข้าข้อมูลหรือใช้ DirectQuery หากคุณกําลังนําเข้าข้อมูลลงในชุดข้อมูล Power BI ของคุณ บทบาทการรักษาความปลอดภัยในแหล่งข้อมูลของคุณจะไม่ถูกใช้ ในกรณีนี้ คุณควรกําหนด RLS เพื่อบังคับใช้กฎการรักษาความปลอดภัยสําหรับผู้ใช้ที่เชื่อมต่อใน Power BI ถ้าคุณกําลังใช้ DirectQuery บทบาทการรักษาความปลอดภัยในแหล่งข้อมูลของคุณจะถูกใช้ เมื่อผู้ใช้เปิดรายงาน Power BI จะส่งคิวรีไปยังแหล่งข้อมูลต้นแบบ ซึ่งจะใช้กฎการรักษาความปลอดภัยกับข้อมูลตามข้อมูลประจําตัวของผู้ใช้

คําถาม: ผู้ใช้หนึ่งๆ สามารถมีบทบาทมากกว่าหนึ่งบทบาทได้หรือไม่
คําตอบ: ผู้ใช้สามารถเป็นสมาชิกของหลายบทบาท และบทบาทเป็นส่วนเสริม ตัวอย่างเช่น ถ้าผู้ใช้เป็นสมาชิกของทั้งบทบาท "การขาย" และ "การตลาด" พวกเขาสามารถดูข้อมูลสําหรับทั้งสองบทบาทเหล่านี้ได้

คำถาม ลองถามคําแนะนําชุมชน Power BI หรือไม่ สนับสนุนแนวคิดในการปรับปรุง Power BI