Oracle返回的差异来自同一个用户但不同的Windows用户

时间:2017-08-08 03:57:56

标签: oracle

我在Windows服务器上有两个用户

  1. 管理员
  2. devUser
  3. 两者都可以使用SQL Developer连接到Oracle 11g服务器(Oracle电子商务套件),但在相同的查询中(来自同义词),他们得到了不同的结果:devUser得到了正确的结果,Administrator在前三列中得到了null。

    来自XXAUTO.XXFND_OU_COMPANY_V的SELECT * 其中ou_name喜欢' ASL%'

    Query Result from Administrator(Windows User)

2 个答案:

答案 0 :(得分:1)

看起来视图中有某种形式的VPD。 Oracle通过其DBMS_RLS包支持细粒度访问控制,尽管名称允许我们在列和行上实现安全策略(自10g起)。 Find out more

通用模型是,当用户连接到数据库时,LOGON触发器会使用有关它们的详细信息填充应用程序上下文。这些详细信息用于生成具有安全策略的表和视图的附加过滤器。您可以使用相关视图进行确认:从ALL_POLICIES开始,根据您找到的内容向下钻取。

视图可能会实现此手动版本(FGAC是企业版功能),但如果您使用EBS似乎不太可能。

另一个选择是您的数据库受Oracle Database Vault保护。此产品是EE许可证的额外费用。它是一个非常强大的工具,它的一个用途是防止像sysadmins或DBA这样的超级用户滥用他们的特权来查看敏感数据。组织似乎不太可能将Database Vault放在开发人员可以访问的服务器上,但我提供了完整性的建议。 Find out more

答案 1 :(得分:0)

谢谢大家。 现在我发现问题是用户设置了不同的Windows语言环境。