访问权限控制和权限管理

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 参数文档页面。

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

使用基础组件

控制功能访问权限

权限用于控制用户或群组可以进行的活动类型。用户获得权限的方式如下:

  1. 最佳做法是确定应具有权限集的一个或多个用户群组,然后根据需要创建一个群组。如果需要,您可以为单个用户授予权限。
  2. 创建包含相应权限的权限集。
  3. 如果要分配的某些权限是特定于模型的权限,请创建或标识现有的模型集
  4. 创建一个将权限集和模型集(如有必要)组合在一起的角色。
  5. 通过角色页面分配角色。角色存在后,您还可以在用户页面上将角色分配给用户。

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

  • 通过 Role1,您可以在 Model1 上查看信息中心。
  • 角色 2 能够查看信息中心并探索 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 参数会从“探索”菜单中移除“探索”,但如果用户已保存引用隐藏探索的内容,他们仍然可以访问“探索”的数据。

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

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

与普通用户不同,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_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 身份验证文档页面中所述。