การใช้การรักษาความปลอดภัยระดับแถวในรายงานที่มีเลขหน้าImplementing row-level security in embedded paginated reports

เมื่อคุณฝังรายงานที่มีการแบ่งหน้า คุณสามารถควบคุมว่าจะแสดงข้อมูลใดWhen you embed a paginated report, you can control which data is displayed. ซึ่งช่วยปรับแต่งข้อมูลที่แสดงให้เหมาะสมสำหรับผู้ใช้แต่ละรายThis allows tailoring the displayed information per user. ตัวอย่างเช่น ถ้าคุณมีรายงานที่มีการแบ่งหน้าของ Power BI ที่มีผลการขายทั่วโลก คุณสามารถฝังข้อมูลดังกล่าวเพื่อให้แสดงเฉพาะผลการขายจากบางภูมิภาคเท่านั้นได้For example, if you have a Power BI paginated report that includes global sale results, you can embed it so that only the sale results from a certain region are available.

คุณลักษณะนี้เป็นวิธีที่ปลอดภัยในการแสดงข้อมูลชุดย่อยในลักษณะที่ไม่ทำให้ข้อมูลที่เหลือด้อยลงThis feature provides a secure way of displaying a subset of the data, in a way that doesn't compromise the rest of data. คล้ายกับคุณลักษณะ การรักษาความปลอดภัยระดับแถว (RLS) ซึ่งเป็นวิธีที่ปลอดภัยในการแสดงข้อมูลในรายงาน Power BI (ที่ไม่ได้แบ่งหน้า) แดชบอร์ด ไทล์ และชุดข้อมูลIt resembles the Row Level Security (RLS) feature, which provides a secure way of displaying data in Power BI reports (that are not paginated), dashboards, tiles, and datasets.

หมายเหตุ

คุณลักษณะนี้ทำงานร่วมกับการฝังรายงานที่มีการแบ่งหน้าสำหรับลูกค้าThis feature works with embedding paginated reports for customers.

กำหนดค่าพารามิเตอร์เพื่อกรองชุดข้อมูลConfiguring a parameter to filter the dataset

เมื่อใช้การรักษาความปลอดภัยระดับแถวกับรายงานที่มีการแบ่งหน้าของ Power BI คุณจำเป็นต้องกำหนดแอตทริบิวต์ พารามิเตอร์ เป็น UserIDWhen applying row-level security to a Power BI paginated report, you need to assign a parameter to the UserID attribute. พารามิเตอร์นี้จะจำกัดข้อมูลที่ดึงมาจากชุดข้อมูล ก่อนทำการฝังรายงานThis parameter will restrict the data pulled from the dataset, before the report is embedded.

หลังจากกำหนดพารามิเตอร์ให้กับ UserID ให้ใช้ API Reports GenerateTokenInGroup เพื่อรับโทเค็นที่ฝังอยู่After assigning the parameter to UserID, use the Reports GenerateTokenInGroup API to get the embed token.

ใช้ UserID เป็นตัวกรองที่ระดับรายงานหรือคิวรีUse UserID as a filter at report or query level

คุณสามารถใช้ UserId เป็น ตัวกรอง หรือใน แบบสอบถาม กับแหล่งข้อมูลใน ตัวช่วยสร้างรายของ Power BIYou can use UserId as a filter or in a query to the datasource in Power BI Report Builder.

ใช้ตัวกรองUsing the filter

  1. ในหน้าต่าง คุณสมบัติของชุดข้อมูล จากบานหน้าต่างด้านซ้าย ให้เลือก ตัวกรองIn the Dataset Properties window, from the left pane, select Filter.

    ตัวช่วยสร้างรายงานของ Power BI

  2. จากเมนูดรอปดาวน์ นิพจน์ ให้เลือกพารามิเตอร์ที่คุณต้องการใช้สำหรับการกรองข้อมูลFrom the Expression dropdown menu, select the parameter you want to use for filtering the data.

    นิพจน์สำหรับตัวช่วยสร้างรายงานของ Power BI

  3. คลิกปุ่มฟังก์ชัน ค่าClick the Value function button.

    ค่าของตัวช่วยสร้างรายงานของ Power BI

  4. ในหน้าต่าง นิพจน์ จากรายการ หมวดหมู่ ให้เลือก เขตข้อมูลที่มีอยู่แล้วภายในIn the Expression window, from the Category list, select Built-in Fields.

    นิพจน์สำหรับตัวช่วยสร้างรายงานของ Power BI

  5. จากรายการ หน่วยข้อมูล ให้เลือก UserID และคลิก ตกลงFrom the Item list, select UserID and click OK.

    UserID ของตัวช่วยสร้างรายงานของ Power BI

  6. ในหน้าต่าง คุณสมบัติชุดข้อมูล ให้ตรวจสอบว่านิพจน์คือ พารามิเตอร์ที่คุณเลือก = UserID และคลิก ตกลงIn the Dataset Properties window, verify that the expression is your selected parameter = UserID, and click OK.

    คุณสมบัติชุดข้อมูลของตัวช่วยสร้างรายงานของ Power BI

การใช้คิวรีUsing a query

  1. ในหน้าต่าง คุณสมบัติของชุดข้อมูล จากบานหน้าต่างด้านซ้าย ให้เลือก พารามิเตอร์ และคลิก เพิ่มIn the Dataset Properties window, from the left pane, select Parameters and click Add.

    พารามิเตอร์ของตัวช่วยสร้างรายงานของ Power BI

  2. ใน ชื่อพารามิเตอร์ ให้ป้อน @UserID และในค่าพารามิเตอร์ ให้เพิ่ม [&UserID]In the Parameter Name enter @UserID, and in the Parameter Value add [&UserID].

    ชื่อพารามิเตอร์ของตัวช่วยสร้างรายงานของ Power BI

  3. จากบานหน้าต่างด้านซ้าย ให้เลือก คิวรี ในคิวรี ให้เพิ่มพารามิเตอร์ UserID เป็นส่วนหนึ่งของคิวรีของคุณ และคลิก ตกลงFrom the left pane, select Query, in the Query add the UserID parameter as part of your query, and click OK.

    หมายเหตุ

    ในภาพหน้าจอด้านล่างเป็นการแสดงตัวอย่าง การใช้งานพารามิเตอร์สี (whereFinalTable.Color = @UserID)In the screenshot below the color parameter is used as an example (whereFinalTable.Color = @UserID). ถ้าจำเป็น คุณสามารถสร้างคิวรีที่ซับซ้อนมากขึ้นได้If needed, it is possible to create a more complex query.

    การแก้ไขคิวรีของตัวช่วยสร้างรายงานของ Power BI

การส่งผ่านพารามิเตอร์ที่กำหนดค่าโดยใช้โทเค็นแบบฝังตัวPassing the configured parameter using the embed token

เมื่อทำการฝังรายงานที่มีการแบ่งหน้าสำหรับลูกค้าของคุณ จะมีการใช้ API Reports GenerateTokenForCreateInGroup เพื่อรับโทเค็นที่ฝังอยู่When embedding a paginated report for your customers, the Reports GenerateTokenInGroup API is used to get the embed token. โทเค็นนี้ยังสามารถใช้เพื่อกรองข้อมูลบางส่วนที่ถูกดึงออกจากรายงานที่มีการแบ่งหน้าได้อีกด้วยThis token can also be used to filter some of the data that is pulled out of the paginated report.

หากต้องการเปิดเผยข้อมูลเพียงบางส่วน ให้กำหนดเขตข้อมูล username ด้วยข้อมูลที่คุณต้องการให้แสดงTo expose only some of the data, assign the username field with the information you want to be displayed. ตัวอย่างเช่น ในรายงานที่มีการแบ่งหน้าซึ่งมีพารามิเตอร์สี ถ้าคุณป้อน สีเขียว ในเขตข้อมูล username โทเค็นแบบฝังตัวจะจำกัดข้อมูลที่ถูกฝังเพื่อแสดงเฉพาะข้อมูลที่มีค่า สีเขียว ในคอลัมน์สีFor example, in a paginated report that has a color parameter, if you enter green in the username field, the embed token will restrict the embedded data to display only the data that has the green value in the color column.

{
    "accessLevel": "View",
    "reportId": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
    "identities": [
            {
                    // Replace the 'username' with a paginated report parameter
                    "username":     "...",
                    "reports: [
                        "cfafbeb1-8037-4d0c-896e-a46fb27ff229"
                    ]
            }
    ]
}