2017-08-08 107 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語言環境的問題。