访问权限控制和权限管理

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

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

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

用户和群组

Looker 中既包含个人用户和用户群组,用户通过 Looker 管理面板的用户页面进行管理,而群组则通过 Looker 管理面板的群组页面进行管理。

最佳做法是使用群组,以避免为各个用户分配、调整和移除控件的繁琐工作。通常,可以通过让某用户属于一个或多个组来安排允许用户的活动组合。如果群组组合都不足以满足需求,请考虑创建仅包含一位用户的群组,以便将来可以将该群组扩展为更多用户。对于访问权限过滤条件,请考虑使用用户属性,因为您可以将用户属性分配给群组。

控制用户内容访问权限

借助 Looker 文件夹,您可以整理多组信息中心和 Look。它们还可以包含其他文件夹,促进组织结构的嵌套层次结构。

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

  • 用户至少需要拥有某个文件夹的查看访问权限级别,才能查看该文件夹是否存在、查看其中的 Look 和信息中心,以及复制文件夹中的 Look 和信息中心。

  • 用户需要拥有文件夹的管理访问权限、修改访问权限级别,才能管理文件夹及其内容(包括重命名文件夹、移动内容以及删除 Look 和信息中心)的访问权限。

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

如需针对在 Looker 中浏览内容的用户调整文件夹访问权限级别,请参阅整理和管理对内容的访问权限文档页面。Looker 管理员还可以在 Looker 的内容访问权限页面中为所有群组和用户调整文件夹访问权限级别。此外,您还可以查看设计和配置访问权限级别系统文档页面,了解实例级访问权限级别设计。

虽然内容访问权限与功能访问权限是分开管理的,但分配给用户的角色可能会影响用户能否查看文件夹中列出的 Look 和信息中心、查看 Look 或信息中心,或者管理文件夹。本页的内容访问权限和权限如何交互部分更详细地介绍了功能访问权限如何影响内容访问权限。

控制功能和数据访问权限

如需控制 Looker 的功能和数据访问权限,您通常需要创建用户群组(这并非强制要求,但建议这样做),并为该群组分配角色。一个角色可将一组权限与一组 LookML 模型绑定在一起。模型本身定义了可用的字段和数据。

您可以使用访问权限过滤器为特定用户设置特定的流量上限。此外,您可以通过使用项目,限制 Looker 开发者使用基于特定数据库的模型。

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

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

- 或 -

使用访问权限过滤条件限制用户只能查看适当的数据

- 或 -

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

- 或 -

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

功能访问权限也会影响内容访问权限。请参阅本页面的内容访问权限和权限的交互方式部分,详细了解数据访问和功能访问权限如何影响内容访问权限。

您需要了解的组成要素

角色

一个角色由一个权限集和一个模型集构成。权限集由一项或多项权限组成,定义了角色可以执行的操作。模型集由一个或多个模型组成,并定义了角色适用的 LookML 模型。

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

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

项目

通过项目,您可以限制哪些模型可以使用哪些数据库连接。这有助于您控制 Looker 开发者在创建模型时可以与哪些数据集进行交互。一个项目可以包含一个或多个模型,也可以配置为使用一个或多个连接。

通过项目定义的此限制也会传递到 Looker SQL Runner,从而确保开发者无法使用 SQL Runner 访问禁止的数据库连接。

用户属性

借助用户属性,您可以为用户群组或个别用户分配任意值。这些值随后会用作 Looker 各个部分的输入,从而为每位用户定制体验。

使用用户属性控制访问权限的一种方式是,将数据库凭据参数化为特定于每个用户。仅当您的数据库有多个具有不同数据访问权限的用户时,此变量才有价值。如需了解详情,请参阅用户属性文档页面。

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

用户属性还可控制访问权限授予。访问权限授权可指定用户属性,并在该属性中定义允许的值,以便授予对探索、联接、视图或字段的访问权限。然后,您可以在探索join视图字段级别使用 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 中的其他位置仍会显示该字段。

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

您可以通过多种方式控制用户对数据的访问权限,具体取决于应用场景:

  • 如需禁止用户查看某些数据列,请控制用户可以访问的字段,如控制用户对 Looker 字段的访问权限部分中所述。只要用户无法开发和无法使用 SQL Runner,他们就会受到他们有权访问的字段的约束。
  • 如需禁止用户查看某些数据,请按照 access_filter 参数文档页面中所述,应用访问权限过滤器字段。
  • 如需限制对特定探索、联接、视图或字段的访问权限,请创建访问权限授权,仅向获得了允许的用户属性值的用户授予访问权限,如 access_grant 参数文档页面中所述。
  • 如需将 Looker 用户限制为只能针对特定 database 用户运行查询(您的数据库团队已将其配置为限制数据访问),请使用用户属性。它们允许您对数据库连接进行参数化,以便一组用户或个别用户使用特定的数据库凭据运行查询。您还应考虑将用户限制在适当的 Looker 字段。否则,Looker 用户可能会尝试查询其数据库用户无权访问的字段,并且会收到错误消息。

正如 hidden 字段参数并不旨在控制字段访问权限一样,探索的 hidden 参数不会阻止所有用户查看某个探索。hidden 参数会从“探索”菜单中移除“探索”,但如果用户保存的内容引用了隐藏的“探索”,他们仍然可以访问该“探索”的数据。

如果您使用的是签名嵌入,请务必通过签名嵌入网址配置数据访问权限控制。

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

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

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

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

内容访问权限和权限如何相互影响

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

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

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

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

如需查看 Look 或信息中心功能块中的数据,用户必须具有相应数据的访问权限。如果没有必要的数据访问权限:

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

例如,如果用户拥有某个文件夹的查看权限、对该文件夹中所有 Look 的底层数据的数据访问权限以及 access_datasee_looks 权限,该用户可以查看文件夹中所有 Look 的列表,还可以查看这些 Look。如果该用户无权查看 LookML 或用户定义的信息中心,则用户将无法看到文件夹中可能存在的任何信息中心。

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

用户至少需要拥有某个文件夹的查看访问权限级别,才能查看该文件夹并查看该文件夹中存储的内容列表。

此外,还至少拥有 see_looks 权限的用户可以在文件夹中查看 Look 的标题。此外,至少拥有 see_user_dashboards 权限的用户也可以看到该文件夹中的信息中心标题。但这并不意味着他们可以查看 Look 或信息中心的数据。

例如,具有 see_looks 权限但缺少 access_data 权限的用户可以查看 Look 的标题,但无法查看 Look 的数据。

拥有 access_data 权限但既没有 see_looks 权限又没有 see_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 身份验证文档页面中所述。