MRa*_*ser 8 java sql security row-level-security shiro
我目前正在评估身份验证/授权框架.
Apache Shiro似乎非常好,但我缺少行级安全功能.
例如,数据库中可能存在特殊行,只有具有特殊权限的用户才能看到和访问这些行.为避免不必要的往返,我们目前修改SQL查询以与我们的授权数据连接,以仅获取当前用户的可见行.
但是这个概念对我来说并不合适,因为我们将业务代码与安全相关的代码混合在一起,这些代码应该是正交的并且彼此独立.
更新:
目标数据库主要是Oracle 10g/11g
- 但如果没有大的缺点,则首选独立于数据库的解决方案
行级安全性最好在数据库本身中完成.在获取连接时,必须告知数据库您的用户上下文是什么.该用户与一个或多个安全组相关联.然后,数据库会自动将过滤器附加到用户提供的查询,以过滤掉安全组中无法看到的内容.这当然意味着这是一个每个数据库类型的解决方案.
Oracle具有非常好的行级安全性支持,请参阅 http://www.orafusion.com/art_fgac.htm作为示例.