การใช้การรักษาความปลอดภัยระดับแถวในรายงานแบบแบ่งหน้า
นําไปใช้กับ: ผู้ใช้ข้อมูลที่เป็นเจ้าของข้อมูล
แอปเป็นเจ้าของข้อมูล
บทความนี้อธิบายวิธีการฝังรายงานที่มีการแบ่งหน้าที่ใช้ RLS (ความปลอดภัยระดับแถว) ลงในแอปพลิเคชันข้อมูลที่แอปของคุณเป็นเจ้าของ
หมายเหตุ
บทความนี้เกี่ยวข้องกับลูกค้าแอปเป็นเจ้าของข้อมูลเท่านั้น
วิธีการใช้ RLS สําหรับรายงานแบบแบ่งหน้าของคุณ:
- ตั้งค่าสภาพแวดล้อม เพื่อกรองรายงาน
- กรองข้อมูลที่ ระดับรายงานหรือคิวรี
- ส่งผ่านพารามิเตอร์ ที่กําหนดค่าโดยใช้โทเค็นแบบฝังตัว
ข้อกำหนดเบื้องต้น
บทความนี้อนุมานว่าคุณทราบวิธีการ ฝังรายงานที่มีการแบ่งหน้าของ Power BI แล้ว ซึ่งอธิบายวิธีการสร้างโทเค็นแบบฝังตัวเพื่อให้รายงานแสดงเฉพาะสิ่งที่ผู้ใช้มีสิทธิ์ในการเข้าถึง
รายงานแบบแบ่งหน้าถูกสร้างขึ้นโดยใช้กลไกจัดการ SQL Server Reporting Services และไม่ใช่กลไกจัดการ Power BI (Analysis Services) ดังนั้นการกรอง RLS จะถูกตั้งค่าในตัว สร้างรายงาน Power BI
ตั้งค่าสภาพแวดล้อม
หากต้องการใช้การรักษาความปลอดภัยระดับแถวกับรายงานที่มีการแบ่งหน้าของ Power BI ให้ใช้ UserID ของเขตข้อมูลที่มีอยู่ภายในเพื่อกําหนดพารามิเตอร์ พารามิเตอร์นี้ถูกใช้เพื่อกรองหรือสอบถามข้อมูลของคุณ
จากนั้น ส่ง ผ่าน UserID ไปยัง โทเค็นที่ฝัง - สร้างโทเค็น API เพื่อรับ โทเค็นที่ฝัง
ใช้ UserID เป็นตัวกรองที่ระดับรายงานหรือคิวรี
คุณสามารถใช้ UserId เป็น ตัวกรอง หรือใน คิวรี ไปยังแหล่งข้อมูลได้
กรองข้อมูล
ในหน้าต่าง คุณสมบัติของแบบจําลองความหมาย จากบานหน้าต่างด้านซ้าย ให้เลือก ตัวกรอง
จากเมนูดรอปดาวน์ นิพจน์ ให้เลือกพารามิเตอร์ที่คุณต้องการใช้สําหรับการกรองข้อมูล
เลือกปุ่มฟังก์ชันค่า
ในหน้าต่างนิพจน์ จากรายการประเภท ให้เลือกเขตข้อมูลที่มีอยู่ภายใน
จากรายการ หน่วยข้อมูล ให้เลือก UserID และเลือก ตกลง
ในหน้าต่าง คุณสมบัติแบบจําลองความหมาย ให้ตรวจสอบว่านิพจน์คือพารามิเตอร์ที่คุณเลือก = UserID และเลือก ตกลง
การใช้คิวรี
ในหน้าต่าง คุณสมบัติของแบบจําลองความหมาย จากบานหน้าต่างนําทางด้านซ้าย ให้เลือก พารามิเตอร์ และเลือก เพิ่ม
ในเขตข้อมูล ชื่อพารามิเตอร์ ให้ใส่ @UserID และในค่าพารามิเตอร์ ให้เพิ่ม [&UserID]
จากบานหน้าต่างด้านซ้าย ให้เลือก คิวรี ในคิวรี ให้เพิ่มพารามิเตอร์ UserID เป็นส่วนหนึ่งของคิวรีของคุณ และเลือก ตกลง
หมายเหตุ
ในสกรีนช็อตด้านล่างใช้พารามิเตอร์สีเป็นตัวอย่าง (WHERE FinalTable.Color = @UserID) ถ้าจําเป็น คุณสามารถสร้างคิวรีที่ซับซ้อนมากขึ้นได้
สร้างโทเค็นแบบฝังตัว
เมื่อคุณฝังรายงานที่มีการแบ่งหน้าสําหรับลูกค้าของคุณ ให้ใช้ 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 ออบเจ็กต์ของบริการหลัก
ข้อควรพิจารณาและข้อจำกัด
- ผู้ใช้หลักไม่ได้รับการสนับสนุนด้วยรายงานที่มีการแบ่งหน้าสําหรับลูกค้าของคุณ ผู้ใช้หลักได้รับการรองรับสําหรับการฝังสําหรับองค์กรของคุณ
- บริการหลักต้องมีสิทธิ์ในพื้นที่ทํางานของสมาชิกอย่างน้อย หรือ (ไม่ใช่ผู้ชมหรือผู้สนับสนุน)