访问权限控制和权限管理

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

  • 内容访问权限,用于控制用户或用户群组是否可以查看文件夹或管理文件夹。有权查看文件夹的用户可以前往该文件夹,并查看其中的信息中心和 Look 列表。能够管理文件夹的用户可以操纵文件夹的内容(复制、移动、删除和重命名信息中心和 Look),整理文件夹本身(重命名、移动或删除文件夹),以及向其他用户和群组授予对文件夹的访问权限。内容访问权限由 Looker 管理员在管理面板中进行管理,或者(如果允许)由各个用户在文件夹内进行管理。
  • 数据访问权限,用于控制用户可以查看哪些数据。数据访问权限主要通过模型集进行管理,模型集是 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 参数文档页面。

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

使用基础组件

控制功能访问权限

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

  1. 最佳做法是确定应具有权限集的一个或多个用户群组,并在必要时创建群组。您可以选择向个别用户授予权限。
  2. 创建包含相应权限的权限集。
  3. 如果部分要分配的权限是特定于模型的,请创建或确定现有的模型集
  4. 创建一个角色,其中包含权限集和模型集(如有必要)。
  5. 角色页面上分配角色。角色存在后,您还可以在用户页面上将该角色分配给用户。

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

  • 角色 1 授予了查看模型 1 中信息中心的权限。
  • 角色 2 授予了查看信息中心和在模型 2 上进行探索的权限。

如果您为同一组用户分配了这两个角色,那么他们既可以查看 Model1 和 Model2 上的信息中心,也可以在 Model2 上进行探索。

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

用户可以处理的字段由用户可以访问的模型控制。用户可以通过以下方式获取字段访问权限:

  1. 创建一个 LookML 模型(或 LookML 模型组合),其中仅包含用户应有权访问的字段。
  2. 依次前往管理 > 用户 > 角色
  3. 角色页面上,创建一个包含这些模型的模型集,然后将其分配给某个角色。
  4. 若要处理用户群组(通常被认为是最佳实践),请在 Looker 的群组页面上创建群组。然后,在角色页面上为该群组分配适当的角色。
  5. 如需处理单个用户,请从用户页面或角色页面向这些用户分配角色。

您可以为用户或群组分配多个角色。然后,用户就可以使用他们拥有的所有角色中的所有模型了。

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

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

根据使用情形,您可以通过多种方式控制用户对数据的访问权限:

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

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

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

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

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

  1. 创建一个项目,将特定数量的模型限制为特定数量的数据库连接。此操作可在 Looker 的管理项目页面上完成。
  2. 依次前往管理 > 用户 > 角色
  3. 角色页面上,创建一个包含项目中至少一个模型的模型集,然后将其分配给某个角色。
  4. 若要处理用户群组(通常被认为是最佳实践),请在 Looker 的群组页面上创建群组。然后,在角色页面上为该群组分配适当的角色。
  5. 如需处理单个用户,请从用户页面或角色页面向这些用户分配角色。

如果 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_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 身份验证文档页面中所述。