การรักษาความปลอดภัยระดับแถว (RLS) ใน เซิร์ฟเวอร์รายงาน Power BI
การตั้งค่าการรักษาความปลอดภัยระดับแถว (RLS) ด้วย เซิร์ฟเวอร์รายงาน Power BI สามารถจํากัดการเข้าถึงข้อมูลสําหรับผู้ใช้ที่กําหนด ตัวกรองจํากัดการเข้าถึงข้อมูลในระดับแถว และคุณสามารถกําหนดตัวกรองภายในบทบาทได้ ถ้าคุณกําลังใช้สิทธิ์เริ่มต้นในเซิร์ฟเวอร์รายงาน Power BI ผู้ใช้ใดๆ ที่มีสิทธิ์ผู้เผยแพร่หรือผู้จัดการเนื้อหาสําหรับรายงาน Power BI สามารถกําหนดสมาชิกให้กับบทบาทสําหรับรายงานนั้นได้
คุณสามารถกําหนดค่า RLS สําหรับรายงานที่นําเข้าไปยัง Power BI ด้วย Power BI Desktop คุณยังสามารถกําหนดค่า RLS บนรายงานที่ใช้ DirectQuery เช่น SQL Server โปรดทราบว่า RLS จะไม่ปฏิบัติตามหากการเชื่อมต่อ DirectQuery ของคุณใช้การรับรองความถูกต้องแบบรวมสําหรับโปรแกรมอ่านรายงาน สําหรับการเชื่อมต่อสดของ Analysis Services คุณสามารถกําหนดค่าการรักษาความปลอดภัยระดับแถวบนแบบจําลองภายในองค์กรได้ ตัวเลือกความปลอดภัยจะไม่แสดงสําหรับชุดข้อมูลที่เชื่อมต่อสด
กําหนดบทบาทและกฎใน 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 จะใช้ตัวกรองทิศทางเดียว โดยไม่คํานึงว่าการตั้งค่าความสัมพันธ์เป็นแบบทิศทางเดียวหรือสองทิศทาง คุณสามารถเปิดใช้งานตัวกรองไขว้แบบสองทิศทางด้วยความปลอดภัยระดับแถวได้ด้วยตนเอง
เลือกความสัมพันธ์ และทําเครื่องหมายบนกล่องกาเครื่องหมาย ใช้ตัวกรองความปลอดภัยในทั้งสองทิศทาง
ทําเครื่องหมายที่ช่องนี้เมื่อใช้งานการรักษาความปลอดภัยระดับแถวแบบไดนามิกตามชื่อผู้ใช้หรือรหัสล็อกอิน
เมื่อต้องการเรียนรู้เพิ่มเติม ดู ที่ตัวกรองไขว้แบบสองทิศทางที่ใช้ DirectQuery ใน Power BI Desktop และ เอกสารทางเทคนิคของการรักษาความปลอดภัยแบบลําจองภาษา BI แบบตาราง
ตรวจสอบบทบาทภายใน Power BI Desktop
หลังจากที่คุณสร้างบทบาทของคุณแล้ว ให้ทดสอบผลลัพธ์ของบทบาทภายใน Power BI Desktop
จากแท็บการวางรูปแบบ เลือกมุมมองเป็น
หน้าต่าง ดูในฐานะบทบาท จะปรากฏขึ้นเมื่อคุณเห็นบทบาทที่คุณสร้างขึ้น
เลือกบทบาทที่คุณสร้างขึ้น จากนั้นเลือก ตกลง เพื่อนําบทบาทนั้นไปใช้
รายงานจะแสดงข้อมูลที่เกี่ยวข้องกับบทบาทนั้น
คุณยังสามารถเลือก ผู้ใช้ อื่น และใส่ผู้ใช้ที่กําหนด
เป็นการดีที่สุดที่จะใส่ชื่อผู้ใช้หลัก (UPN) เนื่องจากนั่นคือสิ่งที่บริการของ Power BI และเซิร์ฟเวอร์รายงาน Power BI ใช้
หากคุณกําลังใช้การรักษาความปลอดภัยแบบไดนามิกที่ยึดตามนิพจน์ DAX ของคุณ ใน Power BI Desktop ผู้ใช้ อื่นจะแสดงผลลัพธ์ที่แตกต่างกันเท่านั้น ในกรณีนี้ คุณจําเป็นต้องรวมชื่อผู้ใช้และบทบาทด้วย
เลือก ตกลง
รายงานจะแสดงตามสิ่งที่ตัวกรอง RLS อนุญาตให้ผู้ใช้ดู
หมายเหตุ
คุณลักษณะ ดูในฐานะบทบาท ใช้ไม่ได้กับแบบจําลอง DirectQuery ที่เปิดใช้งานการลงชื่อเข้าระบบครั้งเดียว (SSO)
เพิ่มสมาชิกไปยังบทบาท
หลังจากที่คุณบันทึกรายงานของคุณใน เซิร์ฟเวอร์รายงาน Power BI แล้ว คุณสามารถจัดการความปลอดภัย และเพิ่มหรือลบสมาชิกบนเซิร์ฟเวอร์ได้ เฉพาะผู้ใช้ที่มีสิทธิ์ผู้เผยแพร่หรือผู้จัดการเนื้อหาสําหรับรายงานที่มีตัวเลือกการรักษาความปลอดภัยระดับแถวพร้อมใช้งานและไม่เป็นสีเทาเท่านั้น
ถ้ารายงานไม่มีบทบาทที่ต้องการ คุณจําเป็นต้องเปิดใน Power BI Desktop เพิ่มหรือปรับเปลี่ยนบทบาท แล้วบันทึกกลับไปยังเซิร์ฟเวอร์รายงาน Power BI
ใน Power BI Desktop บันทึกรายงานไปยัง เซิร์ฟเวอร์รายงาน Power BI คุณจําเป็นต้องใช้เวอร์ชันของ Power BI Desktop สําหรับเซิร์ฟเวอร์รายงาน Power BI
ในบริการรายงาน Power BI เลือกจุดไข่ปลา (...) ที่อยู่ถัดจากรายงาน
เลือก จัดการ>การรักษาความปลอดภัยระดับแถว
บนหน้า การรักษาความปลอดภัย ระดับแถว คุณสามารถเพิ่มสมาชิกให้กับบทบาทที่คุณสร้างขึ้นใน Power BI Desktop ได้
หากต้องการเพิ่มสมาชิก ให้เลือกเพิ่มสมาชิก
ป้อนผู้ใช้หรือกลุ่มในกล่องข้อความในรูปแบบชื่อผู้ใช้ (DOMAIN\user) และเลือกบทบาทที่คุณต้องการกําหนดให้กับพวกเขา สมาชิกรายนี้จะต้องอยู่ภายในองค์กรของคุณ
ทั้งนี้ขึ้นอยู่กับวิธีที่คุณกําหนดค่า Active Directory ไว้ การป้อนชื่อผู้ใช้หลักที่นี่ก็ใช้ได้ ในกรณีนั้น เซิร์ฟเวอร์รายงานจะแสดงชื่อผู้ใช้ที่เกี่ยวข้องในรายการ
คลิก ตกลง เพื่อนําไปใช้
หากต้องการลบสมาชิก ให้ทําเครื่องหมายที่ช่องถัดจากชื่อและเลือกลบ คุณสามารถลบสมาชิกหลายคนพร้อมกันได้
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) ของผู้ใช้ ซึ่งคล้ายกับที่อยู่อีเมล
หากคุณกําลังใช้การรับรองความถูกต้องแบบกําหนดเองใน เซิร์ฟเวอร์รายงาน Power BI จะส่งกลับรูปแบบชื่อผู้ใช้ที่คุณได้ตั้งค่าสําหรับผู้ใช้
ข้อควรพิจารณาและข้อจำกัด
นี่คือข้อจํากัดปัจจุบันสําหรับการรักษาความปลอดภัยระดับแถวบนแบบจําลอง Power BI
ผู้ใช้ที่มีรายงานโดยใช้ชื่อผู้ใช้ () ฟังก์ชัน DAX จะสังเกตเห็นพฤติกรรมใหม่ในขณะนี้ซึ่งชื่อผู้ใช้หลัก (UPN) จะถูกส่งกลับยกเว้นเมื่อใช้ DirectQuery กับการรักษาความปลอดภัยแบบรวม เนื่องจาก RLS ไม่ได้ปฏิบัติตามในสถานการณ์นั้น ลักษณะการทํางานในสถานการณ์นั้นจะไม่เปลี่ยนแปลง
คุณสามารถกําหนด RLS บนชุดข้อมูลที่สร้างขึ้นด้วย Power BI Desktop เท่านั้น เมื่อต้องการเปิดใช้งาน RLS สําหรับชุดข้อมูลที่สร้างขึ้นด้วย Excel คุณต้องแปลงไฟล์ของคุณให้เป็นไฟล์ Power BI Desktop (PBIX) ก่อน เรียนรู้เพิ่มเติมเกี่ยวกับ การแปลงแฟ้ม Excel
เฉพาะการแยก แปลง การโหลด (ETL) และการเชื่อมต่อ DirectQuery โดยใช้ข้อมูลประจําตัวที่ได้รับการสนับสนุน การเชื่อมต่อแบบสดไปยังบริการวิเคราะห์และการเชื่อมต่อ DirectQuery โดยใช้การรับรองความถูกต้องแบบรวมถูกจัดการในแหล่งข้อมูลพื้นฐาน
หากคุณกําลังใช้การรักษาความปลอดภัยแบบรวมกับ DirectQuery ผู้ใช้ของคุณอาจสังเกตเห็น:
- RLS ถูกปิดใช้งาน และข้อมูลทั้งหมดจะถูกส่งกลับ
- ผู้ใช้ไม่สามารถอัปเดตการกําหนดบทบาทและรับข้อผิดพลาดบนหน้า RLS Manage ได้
- สําหรับฟังก์ชันชื่อผู้ใช้ DAX คุณจะได้รับชื่อผู้ใช้เป็น DOMAIN\USER ต่อไป
ผู้เขียนรายงานไม่สามารถเข้าถึงเพื่อดูข้อมูลรายงานใน เซิร์ฟเวอร์รายงาน Power BI จนกว่าพวกเขาจะกําหนดบทบาทให้ตัวเองหลังจากอัปโหลดรายงานแล้ว
การกําหนดบทบาทผ่านการเป็นสมาชิกกลุ่มจะได้รับการสนับสนุนเฉพาะเมื่อมีการกําหนดค่าเซิร์ฟเวอร์รายงาน Power BI เพื่อเรียกใช้ด้วยการรับรองความถูกต้อง NTLM หรือ Kerberos เซิร์ฟเวอร์ที่เรียกใช้ด้วยการรับรองความถูกต้องแบบกําหนดเอง หรือ Windows Basic จําเป็นต้องกําหนดผู้ใช้ให้กับบทบาทอย่างชัดเจน
คำถามที่ถามบ่อย
ฉันสามารถสร้างบทบาทเหล่านี้สําหรับแหล่งข้อมูล Analysis Services ได้หรือไม่
คุณสามารถสร้างได้ถ้าคุณนําเข้าข้อมูลลงใน Power BI Desktop ถ้าคุณกําลังใช้การเชื่อมต่อสด คุณไม่สามารถกําหนดค่า RLS ภายในบริการของ Power BI มีการกําหนด RLS ภายใน Analysis Services แบบจําลองภายในองค์กร
ฉันสามารถใช้ RLS เพื่อจํากัดคอลัมน์หรือหน่วยวัดที่สามารถเข้าถึงโดยผู้ใช้ของฉันได้หรือไม่
ไม่ใช่ ถ้าผู้ใช้มีสิทธิ์เข้าถึงแถวเฉพาะของข้อมูล พวกเขาสามารถเห็นคอลัมน์ทั้งหมดของข้อมูลสําหรับแถวนั้น
RLS อนุญาตให้ฉันซ่อนข้อมูลรายละเอียด แต่ให้สิทธิ์การเข้าถึงข้อมูลที่สรุปไว้ในวิชวลหรือไม่
ไม่ ถึงแม้คุณจะรักษาข้อมูลของแต่ละแถว แต่ผู้ใช้สามารถดูรายละเอียดหรือข้อมูลสรุปได้ตลอดเวลา
ฉันสามารถเพิ่มบทบาทใหม่ใน Power BI Desktop ได้หรือไม่ถ้าฉันมีบทบาทและสมาชิกที่กําหนดอยู่แล้ว?
ใช่ ถ้าคุณมีการกําหนดบทบาทที่มีอยู่แล้วและสมาชิกที่ได้รับมอบหมายใน เซิร์ฟเวอร์รายงาน Power BI คุณสามารถสร้างบทบาทเพิ่มเติม และเผยแพร่รายงานของคุณโดยไม่มีผลกับการมอบหมายปัจจุบัน
เนื้อหาที่เกี่ยวข้อง
มีคำถามเพิ่มเติมหรือไม่? ลองถามชุมชน Power BI