DirectQuery连接SQL Server时使用网关凭据还是报表查看者凭据?
DirectQuery连接SQL Server时的凭据使用规则
微软官方文档中关于凭据使用的描述看似矛盾,实际对应两种不同的配置场景:
场景1:启用单点登录(SSO)
DirectQuery允许将报表查看者的凭据传递到基础数据源并在那里应用安全规则。支持对SQL Azure数据源以及通过数据网关对本地SQL Server进行单点登录。
当你为本地SQL Server配置了通过数据网关的单点登录时,DirectQuery会直接传递报表查看者的凭据到数据源,此时查询数据使用的是查看者自身的凭据,数据源可以直接应用自身的安全规则(比如数据库级别的权限控制)。
场景2:使用固定凭据(默认常规配置)
如本文前文所述,发布到Power BI服务后,DirectQuery报表始终使用相同的固定凭据连接到基础数据源。此行为适用于DirectQuery,不适用于SQL Server Analysis Services的实时连接。发布DirectQuery报表后需立即配置要使用的用户凭据,否则在Power BI服务中打开报表会报错。
一旦提供用户凭据,无论哪个用户打开报表,都会使用该凭据。这种方式与导入数据完全相同,所有用户看到相同数据,除非报表定义了行级安全。
如果没有启用单点登录,而是采用DirectQuery的常规配置,发布到Power BI服务后需要预先配置固定凭据(该凭据在网关中设置),此时所有用户打开报表时,都会使用这个预先配置好的固定凭据连接数据源,所有用户看到的数据一致,除非报表本身配置了行级安全(RLS)来限制不同用户的数据可见范围。
总结
- 启用网关单点登录时:使用报表查看者的凭据
- 未启用SSO、使用固定凭据配置时:使用网关中配置的固定凭据
内容的提问来源于stack exchange,提问作者variable
相关产品推荐
相关产品推荐

