根据用户登录,需要在 pentaho CDE 仪表板中更改数据源连接



我们已经准备好了一组仪表板。截至目前,此仪表板仅指向一个数据源。但是我们有要求,例如基于 pentaho 中的用户登录,我们需要检查此登录用户指向哪个数据库,并基于此我们需要动态更改仪表板连接并从该特定数据库在 pentaho 仪表板上获取结果。

为此,我们有一个主数据库。在此数据库中,我们有一个表以及以下列 用户名 ,服务器名称和数据库名称。

现在我们面临着一个问题,例如如何基于五角 BI 服务器中的用户登录使用此主表进行动态连接?

到目前为止,我已经 https://forums.pentaho.com/threads/136669-Dynamic-Datasource/检查了这个网址。 但是我不明白这个"选择数据库"参数如何基于用户登录设置?任何人都可以帮助解决这个问题吗?

在 CDA 连接中,登录用户以 ${[security:principalName]} 的形式提供。 下面是一个示例 CDA 定义,该定义应检索所需的服务器名称和数据库名称。

<DataAccess access="public" connection="datamart" id="master_table" type="sql">
<Name>master_table</Name>
<Cache duration="3600" enabled="true"/>
<Columns/>
<Parameters>
<Parameter access="private" default="${[security:principalName]}" name="PRM_USER" type="String"/>
</Parameters>
<Query>
select ServerName, DatabaseName 
from MasterTable
where UserName = ${PRM_USER};
</Query>
</DataAccess>

您需要尽早调用此函数(更改优先级(,然后使用结果集为仪表板配置数据源。

这是用于多租户的 Pentaho 文档,您需要分片类型。 看起来需要一些代码才能使其以安全的方式工作。

https://help.pentaho.com/Documentation/7.1/0R0/070/Multi-Tenancy

最新更新