Power BI数据集市(Datamarts)RLS的DAX配置方法咨询
数据集市(Datamarts)行级安全性(RLS)的DAX相关配置方案
目前官方文档中数据集市的RLS确实未提及直接用DAX配置的路径,但可以通过以下两种方式实现类似Power BI Desktop的行级权限控制:
- 基于数据集市SQL底层的原生行级安全配置
数据集市本质依托Azure SQL数据库,你可以直接在数据集市的SQL查询编辑器中操作:- 创建数据库角色,然后通过
CREATE SECURITY POLICY编写T-SQL行过滤规则,利用USER_NAME()或SESSION_CONTEXT()来匹配数据行的用户标识字段(比如邮箱),实现和DAX表达式[Email] = userprincipalname()一致的效果。 - 将需要受限的Power BI用户映射到对应的数据库角色,这样无论用什么工具连接数据集市的SQL端点,都会遵循该过滤规则。
- 创建数据库角色,然后通过
- 在Power BI Desktop中基于数据集市数据源配置RLS
如果你坚持要用DAX配置,可以按以下步骤操作:- 在Power BI Desktop中以DirectQuery模式连接数据集市作为数据源。
- 在Desktop的「管理角色」中编写DAX表达式设置行级过滤规则。
- 将配置好RLS的模型发布到Power BI服务,用户通过Power BI Desktop连接该发布后的数据集时,会遵循DAX定义的权限规则。
注意:这种方式的RLS作用在Power BI模型层,而非数据集市本身,如果用户直接连接数据集市的SQL端点,该RLS不会生效。
- 基于数据集市SQL底层的原生行级安全配置
额外提示:
- 若需要权限控制在数据集市层面全局生效,优先选择第一种T-SQL方式,这是数据集市原生支持的安全策略。
- 第二种方式更适合依赖Power BI生态访问数据的场景,权限规则仅在Power BI模型链路中生效。
内容的提问来源于stack exchange,提问作者malval
相关产品推荐
相关产品推荐

