sql—在何处/如何存储和检查特定的用户限制?

bq9c1y66  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(260)

关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。

9个月前关门了。
改进这个问题
我有一个标准的用户、组、权限模式,用于向我的用户授予/撤销crud权限。我有一个api,它根据用户的查询从模型数据中过滤出数据。
我希望能够限制用户发送查询时返回的对象数。我的问题是我不确定在哪里/如何最好地存储这些信息。
我的基本解决办法是加一个 max_rows 我的小组和参考栏,每个请求都很简单,易于管理,但由于用户可以有多个组,我必须确保 max_rows 与用户所属的其他组同步。
有什么改进的想法吗?

nle07wnf

nle07wnf1#

您不必确保最大行数与用户所属的组同步。
这样想:超级管理员应该能够获得他/她所要求的任意多的行,这是无限的。受信任的用户可能有一些适当的限制,例如最多10000行。现在,如果某人同时拥有这两个角色,很明显此人应该能够加载他/她想要的任意多个记录,因为他/她是超级管理员,而且此人也受信任这一事实不应削弱他/她的超级管理员权利,因此一个合乎逻辑的方法是:

select max(max_rows)
from yourgrouptable
join yourgroupmappingtable
on yourgrouptable.id = yourgroupmappingtable.group_id
where yourgroupmappingtable.user_id = 5;

相关问题