定义角色
这一部分将介绍如何通过 Hasura 为权限设置进行角色建模。
传统而言,你会根据分配给用户的职责考虑多重角色。
在 Slack 应用程序模型中,快速分析将为你提供多重角色的可能性。有应用程序的 users
、控制和管理工作空间的 workspace owners
、拥有管理工作空间的权限子集的 workspace admins
、channel admins
等等。但需要注意的重要一点是,他们都是该应用程序的 users
,只有读取/写入某些数据的额外权限。这就需要我们来定义名为 user
的单一角色,以适应上述权限层级。我们会在稍后的部分中看到如何实现。
对于你的应用程序的用户,你很可能只需要一个 Hasura 角色。但在某些情况下,你确实需要多重角色来控制数据访问。
多重角色示例
那么何时使用多重角色来定义权限呢?我们来看一下某些用例。
登录与可公开访问的数据
如果应用程序中的部分数据公开可见,而某些数据仅登录用户可见,那么多重角色就是解决办法。在 Slack 应用程序中,一切都假设为仅向登录用户提供。
列的不同访问权限
如果可访问的列因登录用户而异,则使用多重角色。例如,在 Slack 应用程序模型中,工作空间所有者可以查看某些敏感且其他用户没有读取权限的列,那么我们自然需要定义多重角色。
后端支持/管理员团队
如果你的应用程序设有需要无限制读取所有表的管理员/客户支持/分析团队,那么他们将拥有自己的个人角色。
如果你没有上述限制,则单一角色就够了。
Did you find this page helpful?
Start with GraphQL on Hasura for Free
- Build apps and APIs 10x faster
- Built-in authorization and caching
- 8x more performant than hand-rolled APIs