数据权限故障排除
如果某人对问题或查询返回的数据具有不正确的访问级别,您需要从最细粒度的权限开始,对不同级别的数据权限进行故障排除。
行和列权限
- [排查行和列安全问题][troubleshooting-row-and-column-security]。
原生查询 (SQL) 权限
表或架构权限
用户组无法访问 SQL 编辑器
- 通过禁用浏览器扩展并刷新浏览器来确保脚本正在加载。
- 转到管理 > 权限,然后选择相关组。
- 找到您想要授予 SQL 访问权限的数据库。
- 从查看数据下拉菜单中选择可以查看。
- 从创建查询下拉菜单中,选择查询构建器和原生。
- 检查访问问题是否已解决.
有关不同类型数据库权限的更多信息,请查看我们权限文档中的数据访问部分。
用户组对表或架构的访问权限不正确
- 转到管理 > 人员,并检查该人员是否位于具有冲突权限的多个组中。
- 如果该人员属于多个组
- 将该人员从权限更广的组中删除,或者
- 转到管理 > 权限并更改数据访问权限类型。
- 检查访问问题是否已解决.
解释
如果一个人是多个组的成员,Metabase 将授予他们所有所属组中最宽松的访问级别。
例如,如果一个人是两个组的成员——一个组授予数据库或表的“可以查看”访问权限,另一个组授予该数据库“已阻止”访问权限——那么该人将能够查看数据。
请记住,每个人都是所有用户组的成员。我们建议您撤销所有用户组的权限,并创建新组以选择性地将权限应用于您的数据源。
用户组可以查看包含受限数据的集合
- 转到管理 > 权限并选择用户组。
- 选择您要限制的数据库或表。
- 将查看数据权限设置为已阻止,然后点击保存。
- 检查访问问题是否已解决.
解释
如果您已授予某个组对数据库或表的“可以查看”数据访问权限,则只要这些问题和仪表板存储在他们有权访问的集合中,该组成员就可以查看基于该数据库的已保存问题和仪表板。
已阻止数据权限在Metabase 的专业版和企业版中可用。如果您阻止一个组访问某个数据库,则该组的成员将无法查看该数据库中的任何数据,无论他们的集合权限如何。
收到“权限被拒绝”错误消息
如果您收到类似于“权限被拒绝 <您的表>”的错误消息,您需要检查 Metabase 应用程序是否具有查询数据库的正确权限。
- 转到 SQL 编辑器,针对相关表或架构运行一个基本查询。
SELECT 1 FROM <your table>;
- 获取 Metabase 用于连接数据库的凭据。如果您不确定这些凭据是什么,请咨询您的数据库管理员。
- 使用不同的应用程序(如您的 CLI 或数据库 IDE),使用 Metabase 用于连接该数据库的相同凭据连接到您的数据库,并运行步骤 1 中的查询。
- 如果步骤 1 和 3 中都无法访问表或架构,请要求您的数据库管理员:
- 授予数据库权限给 Metabase 用于连接的角色,或者
- 提供一组具有正确权限的数据库凭据。
- 检查访问问题是否已解决.
解释
您的数据库有自己的一套权限,这些权限是为每个登录人员(或应用程序)配置的。
数据库权限应用于您的数据库连接级别,在您的数据和集合权限应用于 Metabase 之前。
这意味着在数据库端配置的设置可以阻止 Metabase 连接到某些架构或表,无论您在 Metabase 端设置了什么。
检查某人对表或架构的访问权限
- 打开一个隐身浏览器窗口。
- 以相关人员的身份登录 Metabase。
- 运行一个问题、仪表板或原生查询,以确认该人员能够看到他们应该看到的数据。
您有其他问题吗?
您还卡住了吗?
如果您无法使用故障排除指南解决问题
- 搜索或咨询 Metabase 社区。
- 搜索已知错误或限制。
阅读其他版本的 Metabase 的文档。