基于用户登录,需要更改 pentaho CDE 仪表板中的数据源连接
Based on User login, Need to Change data source connection in pentaho CDE dashboard
我们已经准备好一组仪表板。截至目前,此仪表板仅指向一个数据源。但是我们有要求,比如基于 pentaho 中的用户登录,我们需要检查这个登录用户指向哪个数据库,并基于此我们需要动态更改仪表板连接并从该特定数据库获取 pentaho 仪表板上的结果。
为此我们有一个主数据库。在这个数据库中,我们有一个 table 以及以下列用户名、服务器名称和数据库名称。
现在我们面临的问题是如何根据 pentaho BI 服务器中的用户登录使用此 master table 建立动态连接?
到目前为止,我已经检查了这个 url https://forums.pentaho.com/threads/136669-Dynamic-Datasource/。
但是我不明白这个 "SelectedDatabase" 参数是如何根据用户登录设置的?谁能帮忙解决这个问题?
在 CDA 连接中,登录用户可作为 ${[security:principalName]} 使用。
下面是一个示例 CDA 定义,它应该检索所需的 ServerName 和 DatabaseName。
<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 文档,您需要 Sharding 类型。
看起来需要一些代码才能使其以安全的方式工作。
https://help.pentaho.com/Documentation/7.1/0R0/070/Multi-Tenancy
我们已经准备好一组仪表板。截至目前,此仪表板仅指向一个数据源。但是我们有要求,比如基于 pentaho 中的用户登录,我们需要检查这个登录用户指向哪个数据库,并基于此我们需要动态更改仪表板连接并从该特定数据库获取 pentaho 仪表板上的结果。
为此我们有一个主数据库。在这个数据库中,我们有一个 table 以及以下列用户名、服务器名称和数据库名称。
现在我们面临的问题是如何根据 pentaho BI 服务器中的用户登录使用此 master table 建立动态连接?
到目前为止,我已经检查了这个 url https://forums.pentaho.com/threads/136669-Dynamic-Datasource/。 但是我不明白这个 "SelectedDatabase" 参数是如何根据用户登录设置的?谁能帮忙解决这个问题?
在 CDA 连接中,登录用户可作为 ${[security:principalName]} 使用。 下面是一个示例 CDA 定义,它应该检索所需的 ServerName 和 DatabaseName。
<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 文档,您需要 Sharding 类型。 看起来需要一些代码才能使其以安全的方式工作。
https://help.pentaho.com/Documentation/7.1/0R0/070/Multi-Tenancy