Power BI: Phân quyền dữ liệu Row Level Security (RLS)

Row Level Security (RLS) được hiểu là phân quyền mức bản ghi dữ liệu. Lấy ví dụ Sale Manager của Hà Nội chỉ có thể xem được dữ liệu kinh doanh của Hà Nội, trong khi Sale Manager của TP HCM chỉ có thể xem được dữ liệu của TP HCM mà không thể xem được số liệu kinh doanh của các địa phương khác. Tuy nhiên CEO thuộc hội đồng quản trị có thể xem được số liệu kinh doanh của tất cả các địa phương trên cả nước.

Bài viết dưới đây sẽ trình bày cách thực hiện phân quyền dữ liệu theo vai trò trong Power BI

Đầu tiên chúng ta thực hiện lấy dữ liệu DimSalesTerritoryFactResellerSales từ nguồn AdventureWorksDW như sau:

Thiết lập Report với các Visual như sau:

  • Stacked column chart (SalesAmount by SalesTerritoryCountry): Biều đồ thể hiện doanh số bán hàng theo Country
  • Card (SalesAmount): Thể hiển tổng doanh số bán hàng cho toàn bộ
  • 2 Slicer (SalesTerritoryGroup và SalesTerritoryRegion): 2 bộ lọc theo khu vực (Group) và vùng (Region)

Thiết lập các Roles như sau:

  • Chọn Modeling | Manage Roles
  • Trong cửa sổ Manage roles thực hiện tạo các roles như sau
Roles Tables Table filter DAX expression
Europe Sales Manager DimSalesTerritory [SalesTerritoryGroup] = “Europe”
USA Sales Manager DimSalesTerritory [SalesTerritoryCountry] = “United States”

Thực hiện Test thử các Roles trên Power PI Desktop như sau:

  • Chọn Modeling | View as Roles
  • Trong cửa sổ View as roles, chọn Roles cần kiểm tra

  • Ta được kết quả hiển thị số liệu bán hàng của Châu Âu như sau:

Cấu hình Row Level Security trên Power BI Service

Sau khi đã thiết lập và kiểm tra hiển thị dữ liệu theo Roles trên Power BI Desktop. Chúng ta thực hiện Publish report lên Power BI Service để chia sẻ và cấu hình theo từng user thuộc role tương ứng

  • Mở Power BI Service, chọn tới DATASETS tương ứng, ở đây tôi đặt tên Power BI Report là AdventureWorks_RowLevel do đó tên DATASETS tương ứng sẽ là tên report.
  • Chọn SECURITY để phân quyền cho dataset này

  • Trong trang Row-Level Security thực hiện gán user vào các roles tương ứng

  • Thực hiện chức năng Test as role để kiểm tra hiển thị

Kết quả hiển thị số liệu bán hàng tại USA cho user Jeff Bezos như sau

Như vậy sau khi tạo các roles, thực hiện lọc data set tương ứng với các role trên Power BI Desktop, tiến hành publish report lên Power BI Service và thực hiện gán user cho các roles tương ứng. Khi đó với mỗi user truy cập vào report trên Power BI Service dữ liệu sẽ được lọc tương ứng theo từng vai trò đã được chỉ định.

This Post Has 3 Comments

  1. trongkha

    Thanks, bài viết giúp ích cho công việc của tôi rất nhiều!

  2. Phuc Pham

    Cảm ơn anh vì bài viết rất hữu ích ạ, cho em hỏi thêm là 1 user email chỉ được phân vào 1 role duy nhất hay có thể nhiều role khác nhau ạ? Em cảm ơn!

    1. basquang

      Logic là user có thể phân vào nhiều role khác nhau em nhé

Leave a Reply