数据权限故障排除

如果某人对问题或查询返回的数据具有错误的访问级别,您需要排除不同级别数据权限的故障,从最细粒度的级别开始。

行和列权限

原生查询 (SQL) 权限

表或模式权限

用户组无法访问 SQL 编辑器

  1. 通过禁用浏览器扩展并刷新浏览器,确保脚本正在加载。
  2. 转到管理 > 权限,然后选择相关的群组。
  3. 找到您要授予 SQL 访问权限的数据库。
  4. 查看数据下拉列表中,选择可以查看
  5. 创建查询下拉列表中,选择查询生成器和原生
  6. 检查访问问题是否已修复.

有关不同类型的数据库权限的更多信息,请查看我们的权限文档中关于数据访问部分

用户组对表或模式的访问权限错误

  1. 转到管理 > 人员,并检查该人员是否在具有冲突权限的多个群组中
  2. 如果该人员在多个群组中
    • 将该人员从具有更广泛权限的群组中移除,或者
    • 转到管理 > 权限,并更改数据访问权限类型。
  3. 检查访问问题是否已修复.

说明

如果某人是多个群组的成员,Metabase 将授予他们在其中作为成员的所有群组中最宽松的访问级别。

例如,如果某人是两个群组的成员 - 一个群组授予对数据库或表的 [查看数据] 访问权限为“可以查看”,而另一个群组授予对该数据库的“阻止”访问权限 - 则该人员将能够查看数据。

请记住,每个人都是所有用户群组的成员。我们建议您从所有用户群组中撤销权限,并创建新群组以选择性地将权限应用于您的数据源。

用户组可以查看包含受限数据的集合

此功能仅在 ProEnterprise 计划(自托管和 Metabase Cloud 上)中可用。

  1. 转到管理 > 权限,然后选择用户组。
  2. 选择您要限制的数据库或表。
  3. 查看数据权限设置为阻止,然后单击保存
  4. 检查访问问题是否已修复.

说明

如果您已授予群组对数据库或表的“可以查看”的查看数据访问权限,则只要这些问题和仪表板存储在他们有权访问的集合中,人们就可以查看利用该数据库的已保存问题和仪表板。

阻止数据权限Pro 和 Enterprise 版本的 Metabase 上可用。如果您阻止群组访问数据库,则该群组的成员将无法查看来自该数据库的任何数据,无论其集合权限如何。

获取“权限被拒绝”错误消息

如果您收到一条错误消息,内容类似于“permission denied to <your table>”,您需要检查 Metabase 应用程序是否具有查询数据库的正确权限。

  1. 转到 SQL 编辑器,并对有问题的表或模式运行基本查询
    SELECT 1
    FROM <your table>;
    
  2. 获取 Metabase 用于连接到数据库的凭据。如果您不确定这些凭据是什么,请咨询您的数据库管理员。
  3. 使用不同的应用程序(例如您的 CLI 或数据库 IDE),使用您的 Metabase 用于连接到该数据库的相同凭据连接到您的数据库,并运行步骤 1 中的查询。
  4. 如果您在步骤 1 和 3 中都无法访问表或模式,请让您的数据库管理员
    • 授予数据库权限给 Metabase 正在使用的角色,或者
    • 提供一组具有正确权限的数据库凭据。
  5. 检查访问问题是否已修复.

说明

您的数据库有自己的一组权限,这些权限是为每个登录的人员(或应用程序)配置的。

数据库权限在数据库连接级别应用,您的数据和集合权限在 Metabase 中应用之前

这意味着在数据库端配置的设置可能会阻止 Metabase 连接到某些模式或表,无论您在 Metabase 端设置了什么。

检查某人对表或模式的访问权限

  1. 打开一个隐身浏览器窗口。
  2. 以相关人员身份登录 Metabase。
  3. 运行问题、仪表板或原生查询以确认该人员可以看到他们应该看到的数据。

您遇到其他问题吗?

您仍然遇到困难吗?

如果您无法使用故障排除指南解决问题

阅读其他Metabase 版本的文档。