Trong kỷ nguyên quản trị dựa trên dữ liệu, việc chia sẻ báo cáo cho toàn bộ doanh nghiệp là rất cần thiết. Tuy nhiên, một thách thức lớn đặt ra: Làm sao để Giám đốc vùng Miền Bắc chỉ xem được số liệu Miền Bắc, Trưởng phòng Kinh doanh chỉ xem được dữ liệu của đội ngũ mình quản lý, trong khi tất cả đều dùng chung một file báo cáo?
Nếu tạo mỗi phòng ban một file báo cáo riêng, bạn sẽ tốn hàng trăm giờ vận hành và bảo trì. Giải pháp triệt để cho bài toán này chính là Row-Level Security (RLS – Bảo mật cấp dòng) trong Power BI.
Hãy cùng MCNA Technology School giải mã toàn bộ về RLS và cách triển khai phân quyền chuẩn doanh nghiệp ngay dưới đây!
1. Row-Level Security (RLS) Trong Power BI Là Gì?
Row-Level Security (RLS) là tính năng bảo mật cho phép bạn giới hạn quyền truy cập dữ liệu ở cấp độ từng dòng đối với những người dùng khác nhau. Khi người dùng mở báo cáo trên Power BI Service, RLS sẽ tự động áp dụng bộ lọc DAX ẩn để chỉ hiển thị đúng tập dữ liệu mà họ được cấp quyền xem.
+-----------------------------------------------------------------------------------+
| CƠ CHẾ BẢO MẬT ROW-LEVEL SECURITY |
+-----------------------------------------------------------------------------------+
| [File Báo Cáo Chung] ──> [Bộ Lọc RLS (DAX)] ──> [User A (Miền Bắc)]: Chỉ thấy MB |
| ──> [User B (Miền Nam)]: Chỉ thấy MN |
+-----------------------------------------------------------------------------------+
Lợi ích cốt lõi của RLS:
-
Tối ưu quản trị (Single Source of Truth): Chỉ cần xây dựng và bảo trì 01 file Dashboard duy nhất cho toàn bộ tập đoàn.
-
Bảo mật tuyệt đối: Dữ liệu bị chặn ngay từ cấp độ bộ nhớ (Engine level). Người dùng không thể dùng tính năng Export Data hay Drilldown để xem lén dữ liệu của khu vực khác.
-
Tự động hóa phân quyền: Giảm thiểu rủi ro rò rỉ thông tin nhạy cảm (Doanh số, Lợi nhuận, Chi phí lương).
2. Phân Loại RLS: Static RLS Vs Dynamic RLS
Trong Power BI, bảo mật cấp dòng được chia làm 2 cấp độ triển khai:
| Tiêu chí | Static RLS (Bảo mật Tĩnh) | Dynamic RLS (Bảo mật Động) |
| Cách vận hành | Tạo cứng các Vai trò (Roles) cố định trong Power BI Desktop. | Dùng hàm DAX lấy Email tài khoản đang đăng nhập để lọc tự động. |
| Công thức DAX | Sử dụng điều kiện gán cứng: [Region] = "Mien Bac". |
Sử dụng hàm hệ thống: [Email] = USERPRINCIPALNAME(). |
| Khả năng mở rộng | Thấp. Phù hợp khi số lượng vai trò ít và cố định (Ví dụ: 3 miền Bắc – Trung – Nam). | Rất cao. Tự động mở rộng khi doanh nghiệp thêm hàng ngàn nhân viên mới. |
| Quản trị User | Bắt buộc phải gán thủ công từng Email vào từng Role trên Power BI Service. | Quản lý phân quyền hoàn toàn thông qua Bảng Phân Quyền (User Mapping Table) trong Database. |
3. Hướng Dẫn Từng Bước Triển Khai Dynamic RLS
Bảo mật động (Dynamic RLS) là phương pháp chuẩn quốc tế mà mọi doanh nghiệp lớn đều áp dụng. Dưới đây là các bước thực hiện:
Bước 1: Thiết lập Bảng Phân Quyền (User Mapping Table)
Tạo một bảng dữ liệu chứa thông tin gán quyền giữa Email đăng nhập và Thuộc tính cần lọc:
[Bảng User_Security]
UserEmail | RegionAccess
----------------------------|--------------
nguyenvana@mcna.vn | Mien Bac
tranvanb@mcna.vn | Mien Nam
pencilc@mcna.vn | Mien Trung
Bước 2: Tạo Relationship trong Data Model
Tạo mối quan hệ 1-Nhiều (1-to-Many) giữa cột RegionAccess (bảng User_Security) và cột Region (bảng Sales).
⚠️ Lưu ý kỹ thuật: Bắt buộc phải bật tính năng “Apply security filter in both directions” (Áp dụng bộ lọc bảo mật theo cả hai chiều) trong cửa sổ Edit Relationship.
Bước 3: Viết biểu thức DAX cho Role
-
Trên giao diện Power BI Desktop, vào tab Modeling ➔ Chọn Manage Roles.
-
Bấm Create để tạo Role mới đặt tên là
Dynamic_User_Role. -
Chọn bảng
User_Security, nhập đoạn code DAX sau vào ô lọc:
// Hàm USERPRINCIPALNAME() sẽ lấy email Office 365 của người đang xem báo cáo
[UserEmail] = USERPRINCIPALNAME()
Bước 4: Kiểm tra phân quyền (Test Role)
Vào Modeling ➔ Chọn View as Roles ➔ Tick chọn Dynamic_User_Role và gõ thử email nguyenvana@mcna.vn vào ô Other user. Nếu báo cáo chỉ hiển thị số liệu Miền Bắc, bạn đã cấu hình thành công!
4. Báo Cáo Tiến Độ Chuỗi Bài SEO Hệ Thống Trên WordPress
Đội ngũ biên tập đã hoàn thiện và chuẩn hóa 100% cấu trúc On-Page cho 09 bài viết chuyên sâu thuộc Topic Cluster Power BI trên hệ thống Website MCNA:
| STT | Tên bài viết | Loại bài | Status WordPress |
| 1 | Power BI Là Gì? Tổng Quan Cho Doanh Nghiệp | Pillar Page | Published |
| 2 | Data Model Trong Power BI | Sub-topic | Published |
| 3 | Quan Hệ Dữ Liệu (Relationship) | Sub-topic | Published |
| 4 | Star Schema Là Gì Và Vì Sao Quan Trọng? | Sub-topic | Published |
| 5 | DAX Là Gì? Ngôn Ngữ Tính Toán Quyền Năng | Sub-topic | Published |
| 6 | Measure Vs Calculated Column Chi Tiết | Deep-dive | Published |
| 7 | Time Intelligence Trong DAX | Technical | Published |
| 8 | Các Loại Biểu Đồ & Cách Chọn Visualization | UX/UI Design | Published |
| 9 | Filter, Slicer & Tương Tác Giữa Các Visual | Interactive | Published |
| 10 | Bookmark & Drillthrough Trong Power BI | Interactive | Published |
| 11 | Row-Level Security (RLS) Bảo Mật Cấp Dòng | Security / Governance | Published |
5. Học Quản Trị & Bảo Mật Dữ Liệu Chuẩn Quốc Tế Tại MCNA Technology School
Triển khai RLS không chỉ đơn thuần là viết code DAX, mà là tư duy Quản trị Dữ liệu (Data Governance).
Tại MCNA Technology School, học viên được đào tạo chuyên sâu về kỹ năng phân quyền quy mô lớn:
| Tiêu chí | Khóa học tại MCNA Technology School | Tự học / Kiến thức căn bản |
| Mô hình Phân quyền | Xây dựng hệ thống Dynamic RLS đa tầng (Phân quyền theo Chi nhánh + Phòng ban + Nhóm hàng) | Chỉ biết tạo Static RLS gán cứng vài bộ lọc đơn giản |
| Xử lý ma trận quyền | Thành thạo kỹ thuật xử lý 1 User được xem nhiều khu vực (Many-to-Many RLS) | Lúng túng khi một sếp quản lý đồng thời 2-3 khu vực |
| Tối ưu Performance | Viết biểu thức RLS DAX tối ưu, không làm giảm tốc độ load báo cáo | Code RLS phức tạp khiến file báo cáo chạy đơ lag |

