访问权限控制和权限管理

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. 角色页面中分配角色。角色存在后,您还可以在用户页面上向用户分配该角色。

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

  • 通过 Role1,可以查看 Model1 的信息中心。
  • Role2 可让用户查看信息中心并在 Model2 中进行探索。

如果您向同一组用户分配这两个角色,那么他们可以在 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 和信息中心内查看数据

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

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

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

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

例如,如果用户对某个文件夹拥有查看权限,对文件夹中所有 Look 的基础数据拥有数据访问权限,并且同时拥有 access_datasee_looks 权限,则可以查看文件夹中所有 Look 的列表,还可以查看这些 Look。如果此用户无权查看 LookML 或用户定义的信息中心,则将不会看到文件夹中可能存在的任何信息中心。

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

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

同时拥有至少 see_looks 权限的用户可以查看该文件夹中外观的标题。同时拥有至少 see_user_dashboards 权限的用户可以查看文件夹中信息中心的标题。不过,这并不意味着他们可以查看数据分析或信息中心的数据。

例如,具有 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 身份验证文档页面中所述。