Row-level security (RLS) กับ Power BI

Row-level security (RLS) ด้วย Power BI สามารถใช้เพื่อจำกัดการเข้าถึงข้อมูลสำหรับผู้ใช้ที่กำหนด ตัวกรองจำกัดการเข้าถึงข้อมูลในระดับแถว และคุณสามารถกำหนดตัวกรองภายในบทบาทได้ ใน Power BI service สมาชิกของพื้นที่ทำงานจะเข้าถึงชุดข้อมูลในพื้นที่ทำงานได้ RLS ไม่จำกัดการเข้าถึงข้อมูลนี้

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

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

คุณสามารถกำหนดบทบาทและกฎภายใน Power BI Desktop เมื่อคุณเผยแพร่ไปยัง Power BI ระบบจะเผยแพร่ไปยังคำจำกัดความบทบาทด้วยเช่นกัน

เมื่อต้องการกำหนดบทบาทความปลอดภัย กรุณาทำตามขั้นตอนเหล่านี้

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

    หมายเหตุ

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

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

    เลือกจัดการบทบาท

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

    เลือกสร้าง

  4. ภายใต้ บทบาท ระบุชื่อสำหรับบทบาทดังกล่าว

  5. ภายใต้ ตาราง เลือกตารางที่คุณต้องการนำกฎ DAX ไปใช้

  6. ในกล่อง นิพจน์ DAX ตัวกรองตาราง ป้อนนิพจน์ DAX นิพจน์นี้จะแสดงค่าจริงหรือเท็จ ตัวอย่างเช่น: [Entity ID] = “Value”

    หน้าต่างจัดการบทบาท

    หมายเหตุ

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

  7. หลังจากสร้างนิพจน์ DAX แล้ว ให้เลือกเครื่องหมายถูกเหนือกล่องนิพจน์เพื่อตรวจสอบความถูกต้องของนิพจน์ดังกล่าว

    ตรวจสอบความถูกต้องของนิพจน์ DAX

    หมายเหตุ

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

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

คุณไม่สามารถกำหนดผู้ใช้ให้กับบทบาทภายใน 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 ได้หลังจากที่คุณสร้างบทบาทของตัวเองแล้ว

  1. จาก แท็บ โมเดล เลือก ดู เป็น

    เลือกดูในฐานะบทบาท

    หน้าต่าง ดูในฐานะบทบาท จะปรากฏขึ้นเมื่อคุณมองเห็นบทบาทที่สร้าง

    หน้าต่างดูในฐานะบทบาท

  2. เลือกบทบาทที่คุณสร้าง จากนั้นเลือก ตกลง เพื่อนำไปใช้กับบทบาทดังกล่าว

    รายงานจะแสดงข้อมูลที่เกี่ยวข้องกับบทบาทนั้น

  3. นอกจากนี้คุณยังสามารถเลือก ผู้ใช้อื่น และใส่ผู้ใช้ที่กำหนด

    เลือกผู้ใช้อื่น

    การใส่ชื่อผู้ใช้หลัก (UPN) เป็นสิ่งบริการ Power BI และเซิร์ฟเวอร์รายงาน Power BI จะใช้เป็นสิ่งที่ดีที่สุด

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

  4. เลือก ตกลง

    รายงานจะแสดงผลตามสิ่งที่ผู้ใช้นั้นสามารถมองเห็นได้

    หมายเหตุ

    คุณลักษณะ ดูในฐานะบทบาท ใช้ไม่ได้กับโมเดล DirectQuery ที่มีการเปิดใช้งานมุมมองSign-On (SSO)

หลังจากที่คุณตรวจสอบบทบาทใน Power BI Desktopเสร็จ ให้ไปต่อและเผยแพร่รายงานของคุณบริการของ Power BIรายงาน

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

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

  1. ใน Power BI service ให้เลือกเมนู ตัวเลือกเพิ่มเติม สำหรับชุดข้อมูล เมนูนี้จะปรากฏเมื่อชี้ไปที่ชื่อชุดข้อมูล ไม่ว่าคุณจะเลือกจากเมนูนำทางหรือหน้าพื้นที่ทำงาน

    เมนูตัวเลือกเพิ่มเติมในพื้นที่ทำงาน

    เมนูตัวเลือกเพิ่มเติมในเมนูนำทาง

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

    เลือก ความปลอดภัย จากเมนูตัวเลือกเพิ่มเติม

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

คุณสามารถสร้างหรือแก้ไขบทบาทภายใน Power BI Desktop

ทำงานกับสมาชิก

เพิ่มสมาชิก

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

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

  • กลุ่มการแจกจ่าย
  • กลุ่มที่เปิดใช้งานอีเมล
  • กลุ่มความปลอดภัย

อย่างไรก็ตาม โปรดทราบว่ากลุ่มOffice 365ของคุณไม่ได้รับการสนับสนุน และไม่สามารถเพิ่มไปยังบทบาทใด ๆ ได้

เพิ่มสมาชิก

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

สมาชิกในบทบาท

ลบสมาชิก

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

ลบสมาชิกออก

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

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

  1. เลือก ตัวเลือกเพิ่มเติม (...) ที่อยู่ถัดจากบทบาท
  2. เลือก ทดสอบข้อมูลแบบเป็น บทบาท

ทดสอบในฐานะบทบาท

คุณจะเห็นรายงานที่พร้อมใช้งานสำหรับบทบาทนี้ แดชบออร์ดจะไม่แสดงในมุมมองนี้ ในส่วนหัวเรื่องของหน้า มีการแสดงบทบาทที่ใช้อยู่

ตอนนี้กำลังดูในฐานะเป็น

ทดสอบบทบาทหรือการรวมบทบาทอื่น ๆ ได้โดยการเลือก ตอนนี้ดูในฐานะ

ทดสอบบทบาทอื่น

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

เมื่อต้องการกลับไปยังมุมมองปกติ เลือก กลับไปยัง Row-Level Security

หมายเหตุ

คุณลักษณะ ทดสอบเป็นบทบาท ใช้ไม่ได้กับโมเดล DirectQuery ที่มีการเปิดใช้งานคิวSign-Onเดี่ยว (SSO)

การใช้ฟังก์ชัน DAX the 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 มีผลกับบุคคลในพื้นที่งาน คุณสามารถกําหนด บทบาทผู้ชมให้พวกเขา ได้เท่านั้น อ่านเพิ่มเติมเกี่ยวกับบทบาทในพื้นที่ทำงานใหม่

คำเตือน

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

การตั้งค่ากลุ่ม

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

ข้อจํากัดปัจจุบันของการรักษาความปลอดภัยระดับแถวบนโมเดลคลาวด์มีดังต่อไปนี้:

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

รับทราบปัญหาแล้ว

มีปัญหาที่ทราบแล้วซึ่งคุณจะได้รับข้อความแสดงข้อผิดพลาดหากคุณพยายามเผยแพร่รายงานที่เผยแพร่ก่อนหน้านี้จากPower BI Desktopของคุณ ต่อไปนี้คือสถานการณ์สมมติ:

  1. แอนนามีชุดข้อมูลที่เผยแพร่ไปยังบริการ Power BI และมีการกำหนดค่า RLS แล้ว

  2. เมื่อแอนนาทำการปรับปรุงรายงานใน Power BI Desktop และเผยแพร่อีกครั้ง

  3. Anna ได้รับข้อผิดพลาด

วิธีแก้ปัญหา: เผยแพร่ไฟล์Power BI Desktopใหม่จากบริการของ Power BIของคุณจนกว่าปัญหานี้ได้รับการแก้ไข คุณสามารถได้โดยเลือก รับ > ไฟล์ ข้อมูล

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

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

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

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

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

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

ขั้นตอนถัดไป