筛选对数据的访问
筛选器控制对 Essbase 多维数据集内数据值的安全访问权限。筛选器是粒度最小的可用安全形式。筛选器即为特定的多维数据集单元或一系列单元格指定一组限制。管理员或经理分配筛选器以规范用户或组的访问权限。
您自己的安全角色可确定您是否可以创建、分配、编辑、复制、重命名或删除筛选器:
- 如果您具有“应用程序管理者”角色,则可以管理任何用户或组的任何筛选器。筛选器不会影响您。
- 如果您具有“数据库更新”角色,则可以管理您创建的应用程序的筛选器。
- 如果您具有“数据库管理者”角色,则可以管理您的应用程序或多维数据集的筛选器。
- 如果您具有“数据库访问”角色(默认角色),则可以对所有单元格中的数据值进行读取访问,除非筛选器对您的访问权限进行了进一步限制。
使用 Essbase Web 界面创建筛选器
在 Essbase Web 界面的“数据库定制”部分中,您可以创建将多维数据集访问权限限制为用户或组的安全筛选器。
可以为一个多维数据集创建多个筛选器。如果您编辑某个筛选器,则对该筛选器的定义进行的修改会自动由该筛选器的所有用户继承。
要在 Redwood Interface 中编辑筛选器,请选择多维数据集并单击左侧面板中的“筛选器”选项。然后,在筛选器编辑器中通过单击筛选器名称并进行更改来编辑筛选器。要编辑现有行,请在相应行中双击。
要在经典 Web 界面中编辑筛选器,请转到检查器中的“筛选器”选项卡,然后在筛选器编辑器中通过单击筛选器名称并进行更改来编辑筛选器。
您可以单击筛选器名称旁的“操作”菜单并选择选项,用来复制、重命名或删除筛选器。
创建筛选器后,将其分配给用户或组。
创建高效的动态筛选器
您可以基于外部源数据创建动态筛选器,以减少所需的筛选器定义数量。
@datasourceLookup 与变量 $LoginUser 和 $LoginGroup。您的外部源数据是一个 csv 文件或关系表。对于关系源数据,您可以将 .csv 加载到关系表中。
动态筛选器语法
使用动态筛选器语法可创建可以分配给多个用户和组的灵活筛选器。
除了成员表达式之外,筛选器行还可以包含以下元素作为其定义的一部分。
$loginuser
此变量存储在运行时当前登录用户的值。可以将它与 @datasourcelookup 方法一起使用。
$logingroup
此变量存储当前已登录用户所属的所有组的值。它包括直接组和间接组。与 @datasourcelookup 方法一起使用时,将根据数据源分别查找每个组。
@datasourcelookup
此方法从数据源提取记录。
语法
@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)| Parameter (参数) | 说明 |
|---|---|
| dataSourceName |
在 Essbase 中定义的外部数据源的名称。对于应用程序级别的数据源,请以应用程序名称和一个句点作为名称的前缀。 |
| columnName |
要在其中搜索给定 columnValue 的数据源列的名称。 |
| columnValue |
要在 columnName 中搜索的值。 |
| returnColumnName |
要从中返回值列表的数据源列的名称。 |
说明
@datasourcelookup 调用等效于以下 SQL 查询:
select returnColumnName from dataSourceName where columnName=columnValue@datasourcelookup 会查找给定的数据源并搜索 columnName 包含 columnValue 的记录。如果将 columnValue 指定为 $loginuser,则此方法将搜索 columnName 包含当前登录用户的名称的记录。
Essbase 通过将列表元素组合为逗号分隔的字符串来构成筛选器定义行。如果有任何记录包含特殊字符、空格或仅包含数字,则会将它们用引号括起来。
示例
用引号将参数括起来。
以下调用查找一个全局数据源,并返回 Mary 是店铺经理的店铺名称列表。
@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")以下调用查找一个应用程序级别的数据源,并返回当前登录用户是店铺经理的店铺名称列表。
@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")以下调用查找一个应用程序级别的数据源,并返回店铺部门与当前已登录用户所属的任意组匹配的店铺名称的列表。
@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")如果已登录用户属于 3 个组,则上面的 @datasourcelookup 方法将返回每个组的所有匹配列值。
用于创建动态筛选器的工作流
使用以下一般工作流来创建动态筛选器。
此动态筛选器工作流假设您已具有多维数据集并且已预配了用户和组。
- 标识数据源,它是文件还是关系源。
- 在 Essbase 中在全局或应用程序级别定义连接和数据源。
- 在多维数据集级别创建筛选器:
- 在 Redwood 界面中,导航到多维数据集并选择筛选器。
-
在经典 Web 界面中,使用数据库检查器的筛选器部分。
- 根据需要使用动态筛选器语法通过
$loginuser变量、$logingroup变量以及@datasourcelookup方法为每个过滤器定义筛选行。 - 将筛选器分配给用户或组。
- 如果已将筛选器分配到组,则将该组分配到要筛选的应用程序:
- 在 Redwood 界面中,导航到应用程序,然后选择权限。
- 在经典 Web 界面中,使用应用程序检查器的权限部分。
