
同一份报表,不同的人打开,只能看到自己有权限查看的数据。这是 RLS 的全部价值,也是它最容易被配错的地方。
上个月,一家快消企业的 IT 部门做了一套全国销售看板,把报表链接发给各区域负责人。华东区总打开后一眼就看到华南的数据排在前面,截图发到管理群里问:「华南这个月超过我们了?」——华南区总回了一句:「你怎么会看到我们的数据?」群里一下安静了。
如果华东区总看到的只是销售额,问题还不算最严重。但如果他还能看到华南的大客户名单、价格政策、折扣和毛利明细,那就不是「发错链接」这么简单了。
这类事故通常不报错,也没有任何告警。它只是安静地把不该看到的数据,展示给了不该看到的人。
后来 IT 重新配置了 Power BI 的行级安全性(Row-Level Security,RLS)。配置完成后:华东区总只能看到华东数据,华南区总只能看到华南数据,城市经理只能看到自己负责的城市,全国负责人可以看到全部数据——而所有人使用的,仍然是同一份报表。
假设一张销售明细表里有 5000 条记录。华东区总打开后只显示华东的 1200 条,华南区总只能看到华南的 800 条,全国销售负责人可以看到全部 5000 条。
这三个人进入的是同一份报表。区别不在页面,而在底层数据已经根据当前用户身份完成过滤。
一套模型、一份报表、一套指标,按不同用户展示不同的数据范围。
这件事听起来简单,但它是「报表能不能发给一线用」的前提。没有 RLS,IT 只能靠不发布、或者复制多份文件来控制可见范围,这两种做法后面都会出问题。
假设企业已经有一张销售明细表 Sales:
| SaleID | Region | Product | Amount |
|---|---|---|---|
| 1001 | 华东 | A产品 | 48,000 |
| 1002 | 华南 | B产品 | 32,000 |
| 1003 | 华东 | C产品 | 61,000 |
| 1004 | 华北 | A产品 | 29,000 |
还需要准备一张用户权限映射表 UserSecurity:
| Region | |
|---|---|
| zhangsan@company.com | 华东 |
| lisi@company.com | 华南 |
| wangwu@company.com | 华东 |
| zhaoliu@company.com | 华北 |
这张表实际上只回答两个问题:当前登录用户是谁;这个用户可以访问哪个区域。
实际项目中,权限表不一定需要手工维护在 Power BI 里,也可以来自这些系统:
•员工主数据;
•销售组织架构;
•CRM 客户归属;
•经销商权限表;
•ERP 岗位与组织关系。
关键只有一句:权限关系必须清晰——谁,可以看什么。
邮箱建议统一转换为小写,并确保与用户登录 Power BI 时使用的账号完全一致。格式差异是权限匹配失败最常见的原因,而且它不会报错,只会让人「什么都看不到」。
更规范的做法,是在权限表和业务明细之间增加一张区域维度表,形成 UserSecurity → Region → Sales 的关系:
•UserSecurity 记录用户与区域的对应关系;
•Region 保存统一的区域主数据;
•Sales 保存销售业务数据。
这样设计的好处是,未来即使企业增加库存、预算、费用、应收等数据,也可以共用同一套区域权限:
01Region → Sales:销售数据按区域过滤。
02Region → Inventory:库存数据同步过滤。
03Region → Budget:预算数据同步过滤。
04Region → Receivables:应收数据同步过滤。
用户登录后,区域权限不仅过滤销售数据,也会同步过滤库存、预算和应收数据。
企业真正需要控制的,往往不是一张报表,而是一整套经营数据。
在 Power BI Desktop 中进入「建模 → 管理角色 → 新建角色」,角色可以命名为 RegionalAccess,然后在 UserSecurity 表上配置规则:
RegionalAccess = LOWER ( 'UserSecurity'[Email] ) = LOWER ( USERPRINCIPALNAME () )
USERPRINCIPALNAME() 会返回当前登录用户的账号。张三登录时,系统匹配他的邮箱,再从权限表里找到「华东」,最终只显示华东区域的数据。这种方式叫动态 RLS。
它与静态 RLS 最大的区别在于,权限不直接写死在 DAX 里。静态写法通常长这样:
'Sales'[Region] = "华东"
这意味着每个区域都要建一个角色。未来增加区域、更换负责人、调整辖区,都要回头改模型、重新发布。
动态 RLS 把权限放在映射表里。新增员工、调整岗位、增加区域,只需要更新权限数据,不必为每个人重写规则。
权限表本身也需要刷新。数据源里权限改了、模型没刷新,用户看到的仍然是旧范围——这是「明明改了却没生效」最常见的原因。
RLS 配置完成后不要立即发布。先通过「以身份查看」模拟不同用户账号逐一验证:
•全国负责人;
•区域负责人;
•城市经理;
•普通销售人员;
•未配置权限的用户;
•同时负责多个区域的用户。
很多权限问题不出在常规角色上,而出在特殊角色上:一个人同时负责两个区域怎么办?员工调岗后旧权限是否撤销?新员工没有权限记录时应该看到什么?全国负责人如何查看全部区域?外部合作伙伴能否看到成本和利润?
基本原则:没有明确授权的数据,默认不显示。
实际组织中,一个用户不一定只负责一个区域。全国负责人要看全国,大区负责人可能管理多个省份,销售经理也可能同时负责两个区域。更稳妥的做法,是建立明确的「用户—可访问区域」映射,一个用户对应多行权限:
| Region | |
|---|---|
| zhangli@company.com | 华东 |
| zhangli@company.com | 华南 |
| wangfang@company.com | 全国 |
这种方式比在区域列里写一个虚拟值 ALL 更清晰,也更容易审计——权限表本身就是一本可以翻阅的账。
如果组织层级更复杂,还可以进一步拆到集团、事业部、大区、省区、城市、门店。层级越细,越应该在维度表里维护,而不是塞进一条 DAX 表达式里。
复杂 RLS 的本质不是写一条 DAX,而是在设计企业的数据授权体系。
最常见的原因是账号匹配失败。Power BI 识别到的是 zhangsan@company.com,而权限表里保存的是 ZhangSan@company.com;或者权限表里用的是姓名、员工编号,而 RLS 规则匹配的是邮箱账号。
建议统一处理:
•去掉前后空格;
•邮箱全部转换为小写;
•确认权限表与登录账号一致;
•确认用户确实存在于权限表。
权限匹配失败时,正确的结果应该是看不到数据,而不是默认显示全部。
这种情况通常不在模型,而在发布环境。需要逐项检查:
•用户是否加入了正确的 RLS 角色;
•权限表是否已经刷新;
•用户在工作区中是什么角色;
•用户是否通过其他方式获得了更高权限。
只在 Desktop 里测是不够的。Desktop 的「以身份查看」只模拟数据过滤,不覆盖工作区角色、应用权限和成员关系带来的影响。
很多企业没有使用 RLS,而是复制多份文件:销售分析_华东.pbix、销售分析_华南.pbix、销售分析_华北.pbix。
刚开始只有三个区域时,看起来问题不大。但区域和报表一多,很快就会出现:
•口径不一致;
•页面更新不同步;
•报表版本混乱;
•用户找不到正式版本;
•IT 不知道哪些报表还在使用。
这时,问题已经不只是权限配置,而是整个 BI 资产开始失去管理。
配置好 RLS 后,同一份报表可以让不同用户看到不同数据。但随着 Power BI 在企业内不断铺开,新问题也会出现:员工到底应该去哪里找报表?
有些报表放在 Power BI 工作区,有些靠邮件发链接,有些收藏在浏览器里,还有些散落在企业微信、钉钉和飞书群中。用户手里可能有几十个链接,却说不清:哪一份是正式版本、哪一份适合自己、哪一份已经停止维护、调岗后原来的权限是否还保留、新报表发布后又从哪里进入。
对 IT 来说,问题也会从「如何配置一份报表的 RLS」,逐渐升级为「如何统一管理整个企业的报表、用户、权限和访问入口」。
PowerOpp 不是替代 Power BI 的 RLS,它是在数据权限之上,再加一层企业级报表门户和 BI 资产管理能力,形成两层权限体系。
| 层级 | 由谁控制 | 管的是什么 |
|---|---|---|
| 第一层:报表访问权限 | PowerOpp | 能看到哪些报表目录、能打开哪些报表、哪些报表发布给哪些部门、调岗离职后如何统一撤权、不同岗位看到什么样的门户首页 |
| 第二层:报表内部数据权限 | Power BI RLS | 进入报表后能看到哪个区域、哪些门店客户和部门、能否查看全国数据、能否查看成本与利润等敏感指标 |
例如,同一份全国销售分析报表发布到 PowerOpp 后,权限效果是这样的:
| 用户 | 是否可以打开报表 | 进入后的数据范围 |
|---|---|---|
| 全国销售负责人 | 可以 | 全国 |
| 华东区总 | 可以 | 华东 |
| 华南区总 | 可以 | 华南 |
| 深圳城市经理 | 可以 | 深圳 |
| 人力资源专员 | 不可以 | 无法进入 |
| 外部经销商 | 按授权开放 | 仅自身数据 |
这张表说明一件事:能不能进,和数据能看到多少,是两个不同的问题。前者靠门户控制,后者靠 RLS 控制,缺一个体系都不完整。
企业不再依靠到处转发链接管理报表,而是通过统一的数据门户提供正式入口。
使用 PowerOpp 后,企业可以把不同业务主题统一组织起来:
| 主题 | 典型报表 |
|---|---|
| 管理驾驶舱 | 集团经营分析、收入与利润分析、预算执行、现金流与应收风险 |
| 销售管理 | 全国销售分析、区域业绩分析、客户与产品分析、销售预测 |
| 生产制造 | 生产运营分析、OEE 分析、质量分析、设备停机分析 |
| 财务管理 | 利润分析、费用分析、应收账款分析、资金分析 |
用户登录后,只会看到与自己岗位和权限相关的报表;RLS 继续保证,不同区域负责人即使打开同一份报表,看到的数据范围仍然不同。
回到文章开头。华东区总为什么会看到华南的数据?直接原因可能是 RLS 没有配置正确。但继续往下看,背后往往还存在更多问题:报表依靠链接到处分发、权限缺少统一管理、不同报表有不同入口、员工不知道哪一份是正式版本、调岗和离职后的权限没有及时回收、IT 难以管理不断增加的 BI 资产。
所以一个成熟的数据访问体系,需要同时回答三个问题:
01用户可以进入哪些报表?由 PowerOpp 统一管理报表发布和访问权限。
02进入报表后可以看到哪些数据?由 Power BI RLS 控制区域、组织、客户和岗位的数据边界。
03用户如何方便地找到并打开报表?由统一的企业数据门户提供正式入口。
一个统一入口、一套报表资产、一套身份体系,不同岗位看到不同的数据。
Power BI RLS 解决的是:同一份报表,不同的人看到不同的数据。悦策科技 PowerOpp 企业数据门户进一步解决的是:员工从统一入口访问正确的报表,并在既定权限范围内使用数据。
企业只有几份报表时,发链接或许还能应付。但当报表开始覆盖不同部门、区域、岗位和外部合作伙伴,企业需要的就不再是更多 Power BI 链接,而是一套统一、安全、可管理的企业数据门户。
报表越来越多,权限和入口还靠链接?
申请试用 PowerOpp 企业数据门户 →


在线咨询







