筛选器控制对多维数据集内数据值的安全访问权限。筛选器是粒度最小的可用安全形式。
创建筛选器即是为特定的多维数据集单元格或一系列单元格指定一组限制。随后可以将筛选器分配给用户或组。
您自己的安全角色可确定您是否可以创建、分配、编辑、复制、重命名或删除筛选器:
可以为一个多维数据集创建多个筛选器。如果您编辑某个筛选器,则对该筛选器的定义进行的修改会自动由该筛选器的所有用户继承。
请参见 "Controlling Access to Database Cells Using Security Filters"。
要在 Redwood 界面中编辑筛选器,请通过依次选择多维数据集和“定制”页,找到“筛选器”选项卡。然后,在筛选器编辑器中通过单击筛选器名称并进行更改来编辑筛选器。要编辑现有行,请在相应行中双击。
要在经典 Web 界面中编辑筛选器,请转到检查器中的“筛选器”选项卡,然后在筛选器编辑器中通过单击筛选器名称并进行更改来编辑筛选器。
您可以单击筛选器名称旁的“操作”菜单并选择选项,用来复制、重命名或删除筛选器。
创建筛选器后,将其分配给用户或组。
您可以基于外部源数据创建动态筛选器,以减少所需的筛选器定义数量。
@datasourceLookup
与变量 $LoginUser
和 $LoginGroup
。您的外部源数据是一个 csv 文件或关系表。对于关系源数据,您可以将 .csv 加载到关系表中。使用动态筛选器语法可创建可以分配给多个用户和组的灵活筛选器。
除了成员表达式之外,筛选器行还可以包含以下元素作为其定义的一部分。
$loginuser
此变量存储在运行时当前登录用户的值。可以将它与 @datasourcelookup
方法一起使用。
$logingroup
此变量存储当前已登录用户所属的所有组的值。它包括直接组和间接组。与 @datasourcelookup
方法一起使用时,将根据数据源分别查找每个组。
@datasourcelookup
此方法从数据源提取记录。
语法
@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
参数 | 说明 |
---|---|
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
方法将返回每个组的所有匹配列值。
使用以下一般工作流来创建动态筛选器。
此动态筛选器工作流假设您已具有多维数据集并且已预配了用户和组。
在经典 Web 界面中,使用数据库检查器的筛选器部分。
$loginuser
变量、$logingroup
变量和 @datasourcelookup
方法为每个筛选器定义筛选器行。