2017-08-08 85 views
0

我有两个用户的Windows服务器上甲骨文回差结果

  1. 管理员
  2. devuser的

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

SELECT *从XXAUTO.XXFND_OU_COMPANY_V 其中类似 'ASL%'

Query Result from Administrator(Windows User)

+1

用户正在执行的查询是什么?可能是因为它们都从各自的模式获得结果,或者管理员正在获取整体DB结果......再次取决于执行查询的表/视图。 – Shahzaib

+0

您需要向我们展示表格,实际和预期输出以获得任何可用的帮助。 –

+1

您可能想要检查代码是否没有任何隐式日期格式转换,这些转换取决于NLS设置。如果代码中包含类似“01/01/2006”的字符串,则其工作方式可能会有所不同,具体取决于其操作系统和SQL Developer会话的配置。 –

回答

1

OU_NAME好像视图有代替某种形式的VPD的。 Oracle通过其DBMS_RLS包支持细粒度访问控制,尽管名称允许我们在列和行(从10g开始)上实施安全策略。 Find out more

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

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

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

0

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