【问题标题】:Data-related security Implementation数据相关安全实施
【发布时间】:2010-12-24 17:02:29
【问题描述】:
使用 Shiro,我们在 GF 上运行的企业应用程序中嵌入了一个出色的安全框架。您定义用户、角色、权限,如果用户可以访问应用程序、特定页面甚至单击特定按钮,我们可以在任何细粒度级别进行控制。
是否存在允许在此之上限制用户查看某些数据的配方或模式?
示例:您有 3 个工厂(一家公司的一部分)的客户表。管理员用户可以查看所有客户记录,但本地工厂的用户不得查看其他工厂的任何客户数据(无论出于何种原因)。
安全功能应该是角色定义的一部分。
感谢您的任何意见和想法
【问题讨论】:
标签:
database
security
shiro
【解决方案1】:
向您的应用程序添加一个或多个安全表,其中包含UserID 以及包含要证券化资源的表的主键的外键。
在新表中为您要授予访问权限的每个用户/资源组合创建记录。
然后,当从数据库请求资源时,只需使用资源键将安全表连接到资源表,并为当前登录的用户过滤安全表的UserID。这将修剪输出,删除用户无权访问的所有记录。
创建允许您在安全表中设置新记录以授予用户对资源的访问权限的表单相对简单。
注意:在您提到的特定情况下,您只需要用户数据库中的一个字段来保存用户有权访问的客户数据库中的主键值。 p>