根据用户对列应用屏蔽

Apply Masking On Columns Based On User

我们有这样的需求: 用户 1 加载一个 jsp 页面说带有信用卡信息的客户端屏幕,在该屏幕中卡号将被屏蔽。

但是另一个用户说 user2 具有更高的权限(比如管理员),加载相同的客户端屏幕然后他应该看到确切的卡号。

为了实现这一点,正在考虑使用 Oracle 12C 的概念 dbms_redact.add_policy。

但是web应用,只用了一个userId(在web.xml,整个应用连接DB一个用户)连接Oracle。 那么,要应用不同的屏蔽策略,我是否需要在 web.xml 中添加另一个用户,并将 Web 应用程序配置为动态连接不同的用户 ID,以实现上述要求?

有没有其他更优雅的方式实现呢?

Oracle redaction policies 可以查看 SYS_CONTEXT 值,所以也许您可以根据用户身份验证时的权限设置一个值?

通过使用 SYS_CONTEXT,您可以基于用户 ID 或角色等实现相同的功能。