การรักษาความปลอดภัยระดับแถว (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 คุณยังได้เผยแพร่ไปยังข้อกําหนดบทบาทด้วย
เมื่อต้องกําหนดบทบาทความปลอดภัย:
นําเข้าข้อมูลลงในรายงาน Power BI Desktop ของคุณ หรือกําหนดค่าการเชื่อมต่อ DirectQuery
หมายเหตุ
คุณไม่สามารถกําหนดบทบาทภายใน Power BI Desktop สําหรับการเชื่อมต่อแบบสดของ Analysis Services คุณจําเป็นต้องดําเนินการดังกล่าวภายในแบบจําลอง Analysis Services
จากแท็บการวางรูปแบบ เลือกจัดการบทบาท
จากหน้าต่าง จัดการบทบาท เลือก ใหม่ เพื่อสร้างบทบาทใหม่
ภายใต้ บทบาท ระบุชื่อสําหรับบทบาท และเลือก ป้อน
หมายเหตุ
คุณไม่สามารถกําหนดบทบาทด้วยเครื่องหมายจุลภาค ตัวอย่างเช่น
London,ParisRole
ภายใต้ เลือกตาราง เลือกตารางที่คุณต้องการใช้ตัวกรองการรักษาความปลอดภัยระดับแถว
ภายใต้ กรองข้อมูล ใช้ตัวแก้ไขเริ่มต้นเพื่อกําหนดบทบาทของคุณ นิพจน์ที่สร้างขึ้นจะส่งกลับค่าจริงหรือเท็จ
หมายเหตุ
ไม่สามารถกําหนดตัวกรองความปลอดภัยระดับแถวทั้งหมดที่สนับสนุนใน Power BI ได้โดยใช้ตัวแก้ไขเริ่มต้น ข้อจํากัดรวมถึงนิพจน์ที่สามารถกําหนดได้โดยใช้ DAX รวมถึงกฎแบบไดนามิกเช่น username() หรือ userprincipalname() เท่านั้น หากต้องการกําหนดบทบาทโดยใช้สวิตช์ตัวกรองเหล่านี้เพื่อใช้ตัวแก้ไข DAX
อีกทางหนึ่งคือเลือก สลับไปยังตัวแก้ไข DAX เพื่อสลับไปใช้ตัวแก้ไข DAX เพื่อกําหนดบทบาทของคุณ นิพจน์ DAX ส่งกลับค่าจริงหรือเท็จ ตัวอย่างเช่น:
[Entity ID] = “Value”
ตัวแก้ไข DAX จะเสร็จสมบูรณ์ด้วยการกรอกข้อมูลอัตโนมัติสําหรับสูตร (intellisense) คุณสามารถเลือกกล่องกาเครื่องหมายเหนือกล่องนิพจน์เพื่อตรวจสอบความถูกต้องของนิพจน์และปุ่ม X ที่อยู่เหนือกล่องนิพจน์เพื่อแปลงกลับการเปลี่ยนแปลงได้หมายเหตุ
คุณสามารถใช้ username() ภายในนิพจน์นี้ได้ โปรดทราบว่า username() มีรูปแบบของ DOMAIN\username ภายใน Power BI Desktop ภายในบริการของ Power BI และเซิร์ฟเวอร์รายงาน Power BI นั้นอยู่ในรูปแบบของชื่อผู้ใช้หลัก (UPN) ของผู้ใช้ นอกจากนี้ ในกล่องนิพจน์นี้ ให้ใช้เครื่องหมายจุลภาคเพื่อแยกอาร์กิวเมนต์ฟังก์ชัน DAX แม้ว่าคุณจะใช้ตําแหน่งที่ตั้งที่ปกติใช้เครื่องหมายอัฒภาค เช่น ฝรั่งเศส หรือเยอรมัน
คุณสามารถสลับกลับไปยังตัวแก้ไขเริ่มต้นได้โดยการเลือก สลับไปยังตัวแก้ไขเริ่มต้น การเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นในอินเทอร์เฟซตัวแก้ไขยังคงอยู่เมื่อสลับอินเทอร์เฟซเมื่อเป็นไปได้ เมื่อกําหนดบทบาทโดยใช้ตัวแก้ไข DAX ที่ไม่สามารถกําหนดในตัวแก้ไขเริ่มต้นได้ ถ้าคุณพยายามสลับไปยังตัวแก้ไขเริ่มต้น คุณจะได้รับคําเตือนว่าตัวแก้ไขการสลับอาจส่งผลให้ข้อมูลบางอย่างสูญหายได้ เพื่อเก็บข้อมูลนี้ เลือก ยกเลิก และดําเนินการแก้ไขบทบาทนี้ในตัวแก้ไข DAX เท่านั้น
หมายเหตุ
ในกล่องนิพจน์นี้ ใช้เครื่องหมายจุลภาคเพื่อแยกอาร์กิวเมนต์ฟังก์ชัน DAX แม้ว่าคุณจะใช้ตําแหน่งที่ตั้งที่ปกติใช้เครื่องหมายอัฒภาค เช่น ฝรั่งเศส หรือเยอรมัน
เลือก บันทึก
คุณไม่สามารถกําหนดผู้ใช้ให้กับบทบาทภายใน Power BI Desktop คุณกําหนดเอกสารเหล่านั้นในบริการของ Power BI คุณสามารถเปิดใช้งานการรักษาความปลอดภัยแบบไดนามิกภายใน Power BI Desktop ได้โดยการใช้ ฟังก์ชัน DAX username() หรือ userprincipalname() และกําหนดค่าความสัมพันธ์ที่เหมาะสม
ตามค่าเริ่มต้น การกรอง row-level security จะใช้ตัวกรองทิศทางเดียว ไม่ว่าการตั้งค่าความสัมพันธ์จะเป็นแบบทิศทางเดียวหรือสองทิศทาง คุณสามารถเปิดใช้งานตัวกรองไขว้แบบสองทิศทางด้วย row-level security ได้ด้วยตนเองโดยการเลือกความสัมพันธ์ และทําเครื่องหมายในกล่อง ใช้ตัวกรองความปลอดภัยในทั้งสองทิศทาง โปรดทราบว่าถ้าตารางมีส่วนในความสัมพันธ์แบบสองทิศทางหลายรายการ คุณสามารถเลือกตัวเลือกนี้สําหรับหนึ่งในความสัมพันธ์เหล่านั้นได้เท่านั้น เลือกตัวเลือกนี้เมื่อคุณได้ใช้การรักษาความปลอดภัยระดับแถวแบบไดนามิกในระดับเซิร์ฟเวอร์แล้ว โดยที่การรักษาความปลอดภัยระดับแถวจะขึ้นอยู่กับชื่อผู้ใช้หรือรหัสการเข้าสู่ระบบ
สําหรับข้อมูลเพิ่มเติม โปรดดู ที่ตัวกรองไขว้แบบสองทิศทางที่ใช้ DirectQuery ใน Power BI และ บทความเชิงเทคนิคของการรักษาความปลอดภัยแบบลําจองภาษา BI แบบตาราง
จัดการความปลอดภัยบนแบบจําลองของคุณ
หากต้องการจัดการความปลอดภัยบนแบบจําลองความหมายของคุณ ให้เปิดพื้นที่ทํางานที่คุณบันทึกแบบจําลองความหมายของคุณใน Fabric และทําตามขั้นตอนต่อไปนี้:
ใน Fabric เลือก เมนูตัวเลือก เพิ่มเติมสําหรับแบบจําลองความหมาย เมนูนี้จะปรากฏขึ้นเมื่อคุณวางเมาส์บนชื่อแบบจําลองความหมาย
เลือก ความปลอดภัย
ความปลอดภัยจะนําคุณไปยังหน้า การรักษาความปลอดภัยระดับบทบาท ที่คุณเพิ่มสมาชิกให้กับบทบาทที่คุณสร้างขึ้น ผู้สนับสนุน (และบทบาทพื้นที่ทํางานที่สูงกว่า) จะเห็น ความปลอดภัย และสามารถกําหนดผู้ใช้ให้กับบทบาท
การทํางานกับสมาชิก
เพิ่มสมาชิก
ในบริการของ Power BI คุณสามารถเพิ่มสมาชิกให้กับบทบาทโดยการพิมพ์ในที่อยู่อีเมลหรือชื่อของผู้ใช้หรือกลุ่มความปลอดภัย คุณไม่สามารถเพิ่มกลุ่มที่สร้างขึ้นใน Power BI คุณสามารถเพิ่มสมาชิก ภายนอกองค์กรของคุณได้
คุณสามารถใช้กลุ่มต่อไปนี้ในการตั้งค่าการรักษาความปลอดภัยระดับแถว
- กลุ่มการแจกจ่าย
- กลุ่มที่เปิดใช้งานจดหมาย
- Microsoft Entra Security Group
โปรดทราบว่ากลุ่ม Microsoft 365 ไม่ได้รับการสนับสนุนและไม่สามารถเพิ่มไปยังบทบาทใด ๆ ได้
คุณยังสามารถดูจํานวนสมาชิกที่เป็นส่วนหนึ่งของบทบาทจากตัวเลขในวงเล็บที่อยู่ถัดจากชื่อบทบาท หรือถัดจากสมาชิก
ลบสมาชิก
คุณสามารถลบสมาชิกได้โดยการเลือก X ที่อยู่ถัดจากชื่อของพวกเขา
การตรวจสอบบทบาทภายในบริการของ Power BI
คุณสามารถตรวจสอบว่าบทบาทที่คุณกําหนดทํางานถูกต้องในบริการของ Power BI โดยการทดสอบบทบาท
- เลือกตัวเลือก เพิ่มเติม (...) ที่อยู่ถัดจากบทบาท
- เลือก ทดสอบในฐานะบทบาท
ระบบจะเปลี่ยนเส้นทางคุณไปยังรายงานที่เผยแพร่จาก 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 จะส่งคิวรีไปยังแหล่งข้อมูลต้นแบบ ซึ่งจะใช้กฎการรักษาความปลอดภัยกับข้อมูลตามข้อมูลประจําตัวของผู้ใช้
คําถาม: ผู้ใช้หนึ่งๆ สามารถมีบทบาทมากกว่าหนึ่งบทบาทได้หรือไม่
คําตอบ: ผู้ใช้สามารถเป็นสมาชิกของหลายบทบาท และบทบาทเป็นส่วนเสริม ตัวอย่างเช่น ถ้าผู้ใช้เป็นสมาชิกของทั้งบทบาท "การขาย" และ "การตลาด" พวกเขาสามารถดูข้อมูลสําหรับทั้งสองบทบาทเหล่านี้ได้
เนื้อหาที่เกี่ยวข้อง
- จํากัดการเข้าถึงข้อมูลด้วยการรักษาความปลอดภัยระดับแถว (RLS) สําหรับ Power BI Desktop
- คําแนะนําการรักษาความปลอดภัยระดับแถว (RLS) ใน Power BI Desktop
- การวางแผนการใช้งาน Power BI: การวางแผนความปลอดภัยของผู้บริโภครายงาน
- RLS สําหรับสถานการณ์แบบฝังตัวสําหรับ ISV
คำถาม ลองถามคําแนะนําชุมชน Power BI หรือไม่ สนับสนุนแนวคิดในการปรับปรุง Power BI