定义角色

这一部分将介绍如何通过 Hasura 为权限设置进行角色建模。

传统而言,你会根据分配给用户的职责考虑多重角色。

在 Slack 应用程序模型中,快速分析将为你提供多重角色的可能性。有应用程序的 users、控制和管理工作空间的 workspace owners、拥有管理工作空间的权限子集的 workspace adminschannel admins 等等。但需要注意的重要一点是,他们都是该应用程序的 users,只有读取/写入某些数据的额外权限。这就需要我们来定义名为 user 的单一角色,以适应上述权限层级。我们会在稍后的部分中看到如何实现。

对于你的应用程序的用户,你很可能只需要一个 Hasura 角色。但在某些情况下,你确实需要多重角色来控制数据访问。

多重角色示例

那么何时使用多重角色来定义权限呢?我们来看一下某些用例。

登录与可公开访问的数据

如果应用程序中的部分数据公开可见,而某些数据仅登录用户可见,那么多重角色就是解决办法。在 Slack 应用程序中,一切都假设为仅向登录用户提供。

列的不同访问权限

如果可访问的列因登录用户而异,则使用多重角色。例如,在 Slack 应用程序模型中,工作空间所有者可以查看某些敏感且其他用户没有读取权限的列,那么我们自然需要定义多重角色。

后端支持/管理员团队

如果你的应用程序设有需要无限制读取所有表的管理员/客户支持/分析团队,那么他们将拥有自己的个人角色。

如果你没有上述限制,则单一角色就够了。

Did you find this page helpful?
Start with GraphQL on Hasura for Free
  • ArrowBuild apps and APIs 10x faster
  • ArrowBuilt-in authorization and caching
  • Arrow8x more performant than hand-rolled APIs
Promo
footer illustration
Brand logo
© 2024 Hasura Inc. All rights reserved
Github
Titter
Discord
Facebook
Instagram
Youtube
Linkedin