การใช้การรักษาความปลอดภัยระดับแถวในรายงานแบบแบ่งหน้า

นําไปใช้กับ: ผู้ใช้ข้อมูลที่เป็นเจ้าของข้อมูล แอปเป็นเจ้าของข้อมูล

บทความนี้อธิบายวิธีการฝังรายงานที่มีการแบ่งหน้าที่ใช้ RLS (ความปลอดภัยระดับแถว) ลงในแอปพลิเคชันข้อมูลที่แอปของคุณเป็นเจ้าของ

หมายเหตุ

บทความนี้เกี่ยวข้องกับลูกค้าแอปเป็นเจ้าของข้อมูลเท่านั้น

วิธีการใช้ RLS สําหรับรายงานแบบแบ่งหน้าของคุณ:

  1. ตั้งค่าสภาพแวดล้อม เพื่อกรองรายงาน
  2. กรองข้อมูลที่ ระดับรายงานหรือคิวรี
  3. ส่งผ่านพารามิเตอร์ ที่กําหนดค่าโดยใช้โทเค็นแบบฝังตัว

ข้อกำหนดเบื้องต้น

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

  • รายงานแบบแบ่งหน้าถูกสร้างขึ้นโดยใช้กลไกจัดการ SQL Server Reporting Services และไม่ใช่กลไกจัดการ Power BI (Analysis Services) ดังนั้นการกรอง RLS จะถูกตั้งค่าในตัว สร้างรายงาน Power BI

ตั้งค่าสภาพแวดล้อม

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

จากนั้น ส่ง ผ่าน UserID ไปยัง โทเค็นที่ฝัง - สร้างโทเค็น API เพื่อรับ โทเค็นที่ฝัง

ใช้ UserID เป็นตัวกรองที่ระดับรายงานหรือคิวรี

คุณสามารถใช้ UserId เป็น ตัวกรอง หรือใน คิวรี ไปยังแหล่งข้อมูลได้

กรองข้อมูล

  1. ในหน้าต่าง คุณสมบัติของแบบจําลองความหมาย จากบานหน้าต่างด้านซ้าย ให้เลือก ตัวกรอง

    Screenshot of the Power BI Report Builder filter.

  2. จากเมนูดรอปดาวน์ นิพจน์ ให้เลือกพารามิเตอร์ที่คุณต้องการใช้สําหรับการกรองข้อมูล

    Screenshot shows the value Color selected from the Expression menu.

  3. คลิกปุ่มฟังก์ชัน ค่า

    Power BI Report Builder value

  4. ในหน้าต่างนิพจน์ จากรายการประเภท ให้เลือกเขตข้อมูลที่มีอยู่ภายใน

    Screenshot shows the Expression window with Built-in Fields selected as Category and ExecutionTime selected as Item.

  5. จากรายการ หน่วยข้อมูล ให้เลือก UserID และคลิก ตกลง

    Power BI Report Builder UserID

  6. ในหน้าต่าง คุณสมบัติแบบจําลองความหมาย ให้ตรวจสอบว่านิพจน์คือพารามิเตอร์ที่คุณเลือก = UserID และคลิก ตกลง

    Power BI Report Builder semantic model properties

การใช้คิวรี

  1. ในหน้าต่าง คุณสมบัติของแบบจําลองความหมาย จากบานหน้าต่างนําทางด้านซ้าย ให้เลือก พารามิเตอร์ และคลิก เพิ่ม

    Power BI Report Builder parameters

  2. ในเขตข้อมูล ชื่อพารามิเตอร์ ให้ใส่ @UserID และในค่าพารามิเตอร์ ให้เพิ่ม [&UserID]

    Power BI Report Builder parameter name

  3. จากบานหน้าต่างด้านซ้าย ให้เลือก คิวรี ในคิวรี ให้เพิ่มพารามิเตอร์ UserID เป็นส่วนหนึ่งของคิวรีของคุณ แล้วคลิก ตกลง

    หมายเหตุ

    ในสกรีนช็อตด้านล่างใช้พารามิเตอร์สีเป็นตัวอย่าง (WHERE FinalTable.Color = @UserID) ถ้าจําเป็น คุณสามารถสร้างคิวรีที่ซับซ้อนมากขึ้นได้

    Power BI Report Builder queries edit

สร้างโทเค็นแบบฝังตัว

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

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

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

{
 "reports": [
 {
  "id": "8d57615e-cfed-4d60-bd21-7dc05727193c"
 }
 ],
 "identities": [
 {
  "username": "green",
  "reports": [
  "8d57615e-cfed-4d60-bd21-7dc05727193c"
  ]
 }
 ]
}

หมายเหตุ

ถ้าคุณสร้างโทเค็นแบบฝังโดยไม่ระบุ id ผู้ใช้ จะมีการใช้ ID ออบเจ็กต์ของบริการหลัก

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

  • ผู้ใช้หลักไม่ได้รับการสนับสนุนด้วยรายงานที่มีการแบ่งหน้าสําหรับลูกค้าของคุณ ผู้ใช้หลักได้รับการรองรับสําหรับการฝังสําหรับองค์กรของคุณ
  • บริการหลักต้องมีสิทธิ์ในพื้นที่ทํางานของสมาชิกหรือด้านบน (ไม่ใช่ผู้ชมหรือผู้สนับสนุน)

สร้างโทเค็นแบบฝังตัว