停用评论:
用法
explore: explore_name {
access_filter: {
field: fully_scoped_field
user_attribute: user_attribute_name
}
}
|
层次结构
access_filter |
默认值
无
接受
LookML 字段名称和关联的用户属性
特殊规则
您可以在同一探索查询中应用多个 access_filter 参数
|
定义
借助 access_filter,您可以应用特定于用户的数据限制。与大多数 LookML 参数不同,它需要与 Looker 中的其他设置结合使用才能正常运行。access_filter 参数特定于单个探索,因此您需要确保将 access_filter 参数应用于每个需要限制的探索。
请务必将
access_filter添加到需要它的每个探索中。如果您忘记向应包含access_filter的探索添加该标记,数据将不受限制,用户将能够查看相应探索中的所有数据。
access_filter 的行为类似于您与用户一起坐在电脑前,要求用户在探索界面中应用一个或多个过滤条件,然后才能运行任何查询。例如,用户可能只负责部分客户,因此您需要用户应用客户名称过滤条件。
您应采取以下几个步骤来实现访问过滤条件:
- 确定哪些字段需要设置限制。在要求用户应用客户名称过滤条件的示例中,您的用户可能有一个包含名为 Name 的维度的客户探索。该字段的引用方式为
customer.name。 - 与相关探索互动的每位用户都需要一个访问过滤条件值。在我们的示例中,每位用户都需要他们有权查看的客户名称列表。您可以使用 Looker 的用户属性功能将这些值应用于每个用户或用户群组,您可以在用户属性文档页面上了解相关信息。假设我们创建了一个 allowed_customers 用户属性。
- 最后,将您创建的用户属性与应使用其值作为过滤条件的字段相关联。在我们的示例中,我们需要将 allowed_customers 用户属性与
customer.name字段相关联,如下所示:
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
}
示例
限制用户只能查看其销售区域的相关信息:
explore: customer {
access_filter: {
field: sales.region
user_attribute: sales_region
}
}
限制用户只能查看客户中特定部门的信息:
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
access_filter: {
field: product.department
user_attribute: allowed_departments
}
}
常见挑战
access_filter 需要完全限定的字段名称
如果您在编写字段名称时未指定视图名称,Looker 中的大多数参数将使用基于参数使用位置的视图名称。不过,access_filter 并非如此,它要求您同时写入视图名称和字段名称。
例如,您可能认为以下代码可以正常运行,并且 name 会被解读为客户名称:
explore: customer {
access_filter: {
field: name
user_attribute: allowed_customers
}
}
但事实并非如此,您会收到错误消息。您必须改为编写以下代码:
explore: customer {
access_filter: {
field: customer.name
user_attribute: allowed_customers
}
}
即使是管理员,也必须在界面中设置过滤条件值
访问使用 access_filter 的探索的每位用户都必须在所引用的用户属性中有一个值。即使是具有管理员角色的用户,也无法查看这些数据。如果用户未设置用户属性值,则在尝试查看探索时会收到错误消息。
如需向管理员或其他用户授予对字符串字段所有值的访问权限,请将用户属性数据类型设置为字符串过滤条件(高级),并使用值
%, NULL。如需向管理员或其他用户授予对数字字段所有值的访问权限,请将用户属性数据类型设置为数字过滤条件(高级),并使用值
<0, >=0, NULL。
注意事项
如果探索包含 access_filter,则 full_suggestions 的默认值会切换为 yes
如果探索包含 access_filter 参数,full_suggestions 的默认值会切换为 yes。这会导致建议查询使用探索逻辑运行,这意味着系统会应用 access_filter 来缩小返回的建议范围,从而将建议列表限制为用户有权访问的数据。
如果您手动将 full_suggestions 设置为 no,则不会运行过滤条件建议查询。