การรักษาความปลอดภัยระดับแถว (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 ได้ เมื่อคุณเผยแพร่ไปยัง Power BI คุณยังได้เผยแพร่ไปยังข้อกําหนดบทบาทด้วย

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

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

    หมายเหตุ

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

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

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

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

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

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

    หมายเหตุ

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

  5. ภายใต้ ตาราง เลือกตารางที่คุณต้องการนํากฎ DAX (นิพจน์การวิเคราะห์ข้อมูล) ไปใช้

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

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

    หมายเหตุ

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

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

  4. เลือก ตกลง

    รายงานจะแสดงตามสิ่งที่ตัวกรอง RLS อนุญาตให้ผู้ใช้ดู

    หมายเหตุ

    คุณลักษณะ ดูในฐานะบทบาท ใช้ไม่ได้กับแบบจําลอง DirectQuery ที่เปิดใช้งานการลงชื่อเข้าระบบครั้งเดียว (SSO)

เพิ่มสมาชิกไปยังบทบาท

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

ถ้ารายงานไม่มีบทบาทที่ต้องการ คุณจําเป็นต้องเปิดใน Power BI Desktop เพิ่มหรือปรับเปลี่ยนบทบาท แล้วบันทึกกลับไปยังเซิร์ฟเวอร์รายงาน Power BI

  1. ใน Power BI Desktop บันทึกรายงานไปยัง เซิร์ฟเวอร์รายงาน Power BI คุณจําเป็นต้องใช้เวอร์ชันของ Power BI Desktop สําหรับเซิร์ฟเวอร์รายงาน Power BI

  2. ในบริการรายงาน Power BI เลือกจุดไข่ปลา (...) ที่อยู่ถัดจากรายงาน

  3. เลือก จัดการ>การรักษาความปลอดภัยระดับแถว

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

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

  4. หากต้องการเพิ่มสมาชิก ให้เลือกเพิ่มสมาชิก

  5. ป้อนผู้ใช้หรือกลุ่มในกล่องข้อความในรูปแบบชื่อผู้ใช้ (DOMAIN\user) และเลือกบทบาทที่คุณต้องการกําหนดให้กับพวกเขา สมาชิกรายนี้จะต้องอยู่ภายในองค์กรของคุณ

    เพิ่มสมาชิกไปยังบทบาท

    ทั้งนี้ขึ้นอยู่กับวิธีที่คุณกําหนดค่า Active Directory ไว้ การป้อนชื่อผู้ใช้หลักที่นี่ก็ใช้ได้ ในกรณีนั้น เซิร์ฟเวอร์รายงานจะแสดงชื่อผู้ใช้ที่เกี่ยวข้องในรายการ

  6. คลิก ตกลง เพื่อนําไปใช้

  7. หากต้องการลบสมาชิก ให้ทําเครื่องหมายที่ช่องถัดจากชื่อและเลือกลบ คุณสามารถลบสมาชิกหลายคนพร้อมกันได้

    ลบสมาชิก

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