访问权限控制和权限管理

Looker 管理员可以指定以下访问权限,管理用户或用户群组可以在 Looker 中查看的内容和执行的操作:

  • 内容访问权限,用于控制用户或用户群组是否可以查看文件夹或管理文件夹。可以查看文件夹的用户可以导航到该文件夹,并查看文件夹中的信息中心和 Looks 列表。能够管理文件夹的用户可以操作文件夹的内容(复制、移动、删除和重命名信息中心和样式)、整理文件夹本身(重命名、移动或删除文件夹),以及向其他用户和群组授予对文件夹的访问权限。内容访问权限由 Adminer 面板的管理员管理;如果允许,由文件夹内的单个用户管理。
  • 数据访问:用于控制用户可以查看哪些数据。数据访问权限主要通过模型集进行管理,模型集是 Looker 角色的一半。然后,这些角色会应用于用户和群组。在模型中使用访问过滤条件可以进一步限制数据访问权限,以限制用户可以查看哪些数据行,就好像他们的查询有自动过滤器一样。您还可以使用访问授权来限制对特定探索、联接、视图或字段的访问权限。
  • 功能访问权限,用于控制用户在 Looker 中可以执行的操作类型,包括查看数据和保存的内容、更改 LookML 模型、管理 Looker 等。功能访问权限由权限集管理,这些权限组是 Looker 角色的另一半。其中一些权限适用于整个 Looker 实例,例如能够查看发送数据的所有时间表。大多数权限都应用于特定的模型集,例如能够查看基于这些模型的用户定义的信息中心。

用户和群组的数据访问权限、功能访问权限和内容访问权限会共同指定用户可以在 Looker 中执行的操作和查看的内容。

用户和群组

Looker 中有单独用户和用户组。用户可在 Looker 的管理面板的用户页面上管理,而群组可在 Looker 的管理面板的页面上管理。

最佳做法是使用群组,避免为各个用户分别分配、调整和移除控件。通常,可以通过让用户属于一个或多个组来安排允许用户使用的 Activity 组合。如果群组不够多,请考虑创建一个仅包含一个用户的群组,这样您就可以日后将此群组扩展到更多用户。对于访问权限过滤器,请考虑使用用户属性,因为您可以为群组分配用户属性。

控制用户内容访问权限

通过 Looker 文件夹,您可以整理多组信息中心和样式。还可以包含其他文件夹,以方便单位的嵌套层次结构。

通过文件夹,您可以设置访问权限级别,确定哪些用户可以编辑文件夹内容(如外观和信息中心)、查看文件夹中的内容以及更改设置:

  • 用户至少需要拥有文件夹的查看权限,才能查看该文件夹和查看其中存储的内容列表。

  • 用户需要拥有文件夹的管理访问权限、编辑权限,才能对该文件夹进行整理,包括复制和移动内容、重命名和移动文件夹以及执行类似操作。

文件夹不会以其他方式控制用户可以在 Looker 平台上执行的操作,也无法控制用户可以使用哪些数据构建自己的内容。要管理该访问权限级别,请参阅本页面的控制功能和数据访问权限部分。

有关如何在 Looker 中浏览内容的用户调整文件夹访问权限级别的分步说明,请参阅我们的整理和管理内容访问权限文档页面。Looker 管理员也可以在 Looker 的内容访问权限页面中调整所有群组和用户的文件夹访问权限级别。您还可以查看设计和配置访问权限级别系统文档页面,了解实例级访问权限级别设计。

虽然内容访问权限与功能访问权限是分开管理的,但分配给用户的角色可能会影响他们能否查看文件夹中列出的样式和信息中心、查看“查看”或“信息中心”或者管理文件夹。下文更详细地介绍了功能访问对内容访问有何影响。

控制功能和数据访问权限

要控制 Looker 中的功能和数据访问权限,您通常需要创建一组用户群组(这一操作为可选操作,但建议执行),然后为该群组分配一个角色。角色可将一组权限与一组 LookML 模型关联起来。模型本身定义可用的字段和数据。

您可以使用访问权限过滤器向特定用户应用特定的数据限制。此外,您可以使用项目来限制 Looker 开发者使用基于特定数据库的模型。

您还可以通过创建访问授权来控制对特定探索、联接、视图或字段的访问权限。授予访问权限会将访问权限仅分配给已分配特定用户属性值的用户。

如果您想实现此目标 ... 以下是您需要执行的基本步骤 ...
控制用户可以执行的操作 创建具备适当权限的权限集,然后将群组或用户分配给具有该权限集的角色
控制用户可以访问哪些字段 使用适当的字段创建模型,然后将模型组或用户分配给具有该模型的角色
控制用户可以访问哪些数据 创建具有适当数据限制的模型,然后将某个群组或用户分配给具有该模型的角色

- 或 -

使用访问权限过滤器,将用户限制为适当的数据

- 或 -

使用用户属性为群组或用户提供不同的数据库凭据

- 或 -

使用具有访问权限的用户属性来限制对特定“探索”或“联接”字段的访问权限。
控制 Looker 开发者可以访问哪些数据库连接 创建具有适当连接的项目,将项目与一组模型相关联,然后将群组或用户分配给使用这些模型的角色

功能访问权限可能还会影响内容访问权限。请参阅下文,详细了解数据访问权限和功能访问权限对内容访问权限有何影响。

您需要了解的要素

角色

一个角色包含一组权限集和一个模型集。权限集定义了角色可以执行哪些操作,模型集定义了角色可以查看哪些 LookML 模型。

创建角色后,您可以为单个用户或一组用户分配该角色。如果您为个别用户添加了一些角色,而向用户所属的群组添加了其他角色,则该用户将继承所有这些角色。

某些权限适用于您的整个 Looker 实例,其他权限仅适用于同一角色中的模型。如需了解详情,请参阅角色文档页面。

项目

借助项目,您可以限制哪些模型可以使用哪些数据库连接。这有助于您控制 Looker 开发者在创建模型时可以与之互动的数据集。

通过项目定义的此限制也会流向 Looker SQL Runner,后者可确保您的开发者无法使用 SQL Runner 访问遭禁止的数据库连接。

用户属性

通过用户属性,您可以向用户群组或单个用户分配任意值。这些值随后会用作 Looker 各个部分的输入,为每个用户定制体验。

用户属性控制访问的一种方法是将特定于每个用户的数据库凭据参数化。只有当数据库中有多个用户且数据访问权限各不相同时,此值才有价值。如需了解详情,请参阅用户属性文档页面。

用户属性控制访问权限的另一种方式是访问过滤器。通过访问过滤器,您可以将一个或多个用户属性用作数据过滤器。例如,您可能想为每位用户分配一个公司名称,然后确保他们看到的任何内容均按该名称过滤。如需了解如何应用访问权限过滤条件,请参阅用户属性文档页面和 access_filter 参数文档页面。

用户属性还可控制访问权限授予。访问授权指定了用户属性,并在该用户属性中定义允许的值,以授予对“探索”、“联接”、“查看”或字段的访问权限。然后,在探索联接查看字段级别使用 required_access_grants 参数,以仅允许具有允许的用户属性值的用户访问那些 LookML 结构。例如,您可以使用访问权限来仅允许 salary 维度的 department 用户属性中包含值 payroll 的用户访问。如需了解如何定义访问权限,请参阅 access_grant 参数文档页面。

使用组成要素

控制功能使用权限

权限用于控制用户或群组可以执行的操作类型。用户可通过以下方式获取权限:

  1. 最佳做法是确定一个或多个应该设置权限的群组,必要时创建一个群组。如有需要,您可以为个别用户授予权限。
  2. 创建包含相应权限的权限集。
  3. 如果要分配的某些权限是模型专用,请创建或标识现有模型集
  4. 创建一个结合使用权限集和模型集(如有必要)的角色。
  5. 角色页面中分配角色。创建角色后,您还可以在用户页面将该角色分配给用户。

您可以为用户或群组分配多个角色。在这种情况下,用户将拥有其拥有的所有角色的所有权限。例如:

  • 使用 Role1 可在 Model1 上查看信息中心。
  • 通过 Role2,可以查看信息中心以及在 Model2 上探索。

如果您将这两个角色分配给同一组用户,那么他们可以同时在 Model1 和 Model2 上看到信息中心,但只能在 Model2 上浏览。

控制用户对 Looker 字段的访问权限

用户可以使用的字段由用户可以访问的模型控制。用户可通过以下方式访问字段:

  1. 创建 LookML 模型(或 LookML 模型组合),仅包含用户应有权访问的字段。
  2. 创建包含这些模型的模型集,然后将其分配给角色。此操作可在 Looker 角色页面上完成。
  3. 要处理用户群组(这通常是我们建议的做法),请在 Looker 群组页面上创建群组。然后,将该群组分配给角色页面上的相应角色。
  4. 如需与个别用户合作,请从用户页面角色页面为这些用户分配角色。

您可以为用户或群组分配多个角色。然后,用户可以处理自己拥有的所有角色的所有模型。

请务必注意,字段的 hidden 参数旨在为用户打造更简洁的体验,而不是控制字段访问权限。hidden 参数会在字段选择器中隐藏字段,但不会阻止用户使用该字段。如果有人发送使用该字段的链接,则他们可以看到该字段,而 Looker 中的其他地方仍会显示该字段。

控制用户对数据的访问权限

您可以通过多种方式控制用户对数据的访问权限,具体视用例而定:

  • 要禁止用户查看某些,请控制他们可以访问的字段(如上文所述)。只要用户无法开发且无法使用 SQL Runner,他们就会受其有权访问的字段的约束。
  • 要禁止用户查看某些数据行,请按照 access_filter 参数文档页面所述,应用访问权限过滤条件字段。
  • 如需限制对特定“探索”、“联接”、“视图”或“字段”的访问权限,请创建仅向特定用户分配了允许的用户属性值的访问权限,如 access_grant“参数”文档页面中所述。
  • 要限制 Looker 用户只能对数据库团队配置为限制数据访问的特定数据库用户运行查询,请使用用户属性。它们允许您参数化数据库连接,以便一组用户或具体用户能够使用特定的数据库凭据运行查询。您还应考虑将用户限制为使用正确的 Looker 字段。否则,Looker 用户可能会尝试查询其数据库用户无权访问的字段,而会收到错误。

正如 hidden 字段参数并非用于控制字段访问一样,“探索”的 hidden 参数也不会阻止所有用户查看“探索”。hidden 参数会从“探索”菜单中移除“探索”内容,但如果用户保存了引用“隐藏”探索的内容,则仍可访问“探索”的数据。

如果您使用的是单点登录 (SSO) 嵌入,请务必通过单点登录嵌入网址配置数据访问权限控制。

控制开发者对数据库连接的访问权限

与普通用户不同,Looker 开发者不必完全受到模型和访问过滤器的限制,因为他们只需对 LookML 模型进行添加或更改即可。不过,管理员仍然可以使用项目将 Looker 开发者限制为使用某些数据库连接。为此,请执行以下操作:

  1. 创建一个项目,将一定数量的模型限制为一定数量的数据库连接。您可以在 Looker 管理项目页面上完成此操作。
  2. 创建包含项目中至少一个模型的模型集,然后将其分配给角色。此操作可在 Looker 角色页面上完成。
  3. 要处理用户群组(这通常是我们建议的做法),请在 Looker 群组页面上创建群组。然后,将该群组分配给角色页面上的相应角色。
  4. 如需与个别用户合作,请从用户页面角色页面为这些用户分配角色。

如果 Looker 开发者可以看到某个项目的任何模型,便能够查看属于该项目的所有模型。例如,如果您为仅有一个模型的角色分配了 Looker 开发者,但该模型恰好属于包含其他模型的项目,就可能发生这种情况。

内容访问和权限如何交互

内容访问权限由用户查看文件夹管理,或由 Looker 管理员在管理面板中的内容访问权限页面管理。分配给用户的角色决定了用户的功能和数据访问权限。这会影响用户在文件夹中可以执行的操作,以及他们能否查看外观和信息中心。

在 Looks 和信息中心内查看数据

要查看“查看”或“信息中心”的数据,用户必须至少对存储内容的文件夹拥有查看权限。

用户必须拥有 access_datasee_looks 权限才能选择 Look 和查看其数据。用户必须拥有 access_datasee_user_dashboards 权限才能选择信息中心并查看其数据。

要查看“查看”或数字面板板块中的数据,用户必须拥有这些数据的访问权限。没有必要的数据访问权限:

  • 即使用户可以在文件夹中看到 Look 并导航到 Look,但 Look' 的查询不会运行,也不会看到 Looks 的数据。
  • 即使用户可以看到包含在文件夹中的信息中心并且可以导航到该信息中心,用户无访问权限的任何板块都将显示为空白。如果信息中心包含根据多个模型创建的图块,用户将能够看到与他们有权访问的模型相关联的图块,而其他模型中的图块将显示错误。

在此示例中,用户对文件夹具有 View 访问权限,拥有数据的数据访问权限,以及 access_datasee_looks 权限,因此可以查看 Looks 列表并查看这些 Looks。用户无权查看 LookML 或用户定义的信息中心,因此该文件夹中不会显示任何信息中心。

查看文件夹以及 Looks 和信息中心列表

用户至少需要拥有文件夹的查看权限,才能查看该文件夹和查看其中存储的内容列表。

同时还拥有至少 see_looks 权限的用户会在文件夹中看到 Looks 标题。同时还拥有至少 see_user_dashboards 权限的用户将在文件夹中看到信息中心的标题。不过,这并不意味着他们可以查看 Looks 或信息中心的数据。

在此示例中,用户拥有 see_looks 权限,但没有 access_data 权限。因此,用户可以查看 Looks 标题,但无法查看 Looks 数据。用户不一定拥有 Look 所需的数据访问权限。

拥有 access_data 权限但没有 see_lookssee_user_dashboards 的用户无法查看任何文件夹或任何内容。

修改文件夹

用户必须拥有文件夹的管理访问权限、编辑访问权限级别,才能整理该文件夹,包括复制和移动内容、重命名和移动文件夹以及执行类似操作。用户还必须拥有 manage_spaces 权限才能创建、修改、移动和删除文件夹。

利用您的用户权限基础架构(LDAP、SAML 和 OpenID Connect)

如果您已经设置了 LDAP、SAML 或 OpenID 基础架构,则可以使用该系统管理用户登录。您可以在 LDAP 身份验证页面中找到设置 LDAP 的说明。您可以在 SAML 身份验证文档页面中找到设置 SAML 的说明。如需查看 OpenID Connect 设置说明,请参阅 OpenID Connect 身份验证文档页面。

如果您在 LDAP、SAML 或 OpenID Connect 实现中配置了群组,还可以在 Looker 中使用这些群组。不过,请注意以下几点:

  • 您创建的任何群组都会自动转移到 Looker,并且将显示在群组页面上。系统会为每个 LDAP、SAML 或 OpenID Connect 群组创建一个 Looker 群组,而 Looker 群组名称会镜像 LDAP、SAML 或 OpenID Connect 群组名称。
  • 您可以使用这些 Looker 群组为群组成员分配文件夹访问权限级别用户属性
  • 无法像在手动创建的群组中一样使用 Looker 群组来配置角色。相反,您必须在设置过程中将 LDAP、SAML 或 OpenID Connect 群组映射到 Looker 角色,并且只能从 LDAP、SAML 或 OpenID Connect 设置页面更改分配的角色。我们之所以要求这种方法,是为了确保您的 LDAP、SAML 或 OpenID Connect 群组始终是您的唯一可信来源。如果不加此限制,群组到角色的映射可能与 LDAP、SAML 或 OpenID Connect 方案中的预期功能有所不同。

您还可以使用 LDAP 将特定于用户的数据库连接应用于 Looker 查询,如 LDAP 身份验证文档页面中所述。