我有两个系统
一个访问管理系统,我在其中存储资源、用户和他们之间的访问权限的引用。
一个资源管理系统,我在其中保存有关资源的数据,并提供管理和查询它们的API。
当在资源管理系统中接收到请求时,向访问管理系统发送查询以获得当前用户可以访问的资源is的列表。在资源管理PostgreSQL数据库中提取数据时,此列表用作条件,因此我只返回用户有权访问的数据的结果。
当用户可以访问多达几百个资源时,这在小范围内工作得很好,但是我如何将其扩展到可以访问2000或20000个资源的用户?我不能为每个请求在我的系统之间传递20000个资源I!
发布于 2020-02-18 14:54:21
你的设计似乎是问题所在。
在不同的系统中分离对象及其访问控制是很奇怪的。除了您正在经历的效率低下之外,保持系统同步将是困难的。
一种行之有效的方法( PostgreSQL使用)是将对象本身的权限存储为“访问控制列表”。然后,您就可以知道是否有人可以在不获取额外数据的情况下访问对象。另一个优点是权限随对象自动删除。
发布于 2020-02-18 18:10:11
您可以为资源in创建一个临时表,并与数据库中更持久的数据进行联接。这可能值得一试,看看它是否适合您的用例。
https://stackoverflow.com/questions/60275070
复制相似问题