2010-05-31 29 views
2

我想授權用戶/應用程序組合,而不僅僅是用戶。如何授權Oracle中的用戶/應用程序組合?

這種情況是,我們已經構建了一個應用程序,引導用戶安全地更新一些數據。

如果同一用戶安裝PL/SQL Dev,Toad或任何其他Oracle管理工具,她可以以應用程序禁止的方式編輯數據。

回答

2

文森特的答案很好(他在他關於欺騙可執行文件的評論中也提出了一個很好的觀點)。

有關更多編程方法(無中間層),請參閱我的answer以解決類似的問題。它基本上涉及將ALTER SESSION編碼到可啓用角色的應用程序中。

0

v $ session視圖包含一個'program'列。這包含連接的應用程序的名稱。您可以使用這些信息。

爲了確定會話ID使用這樣的:

選擇 SYS_CONTEXT從雙( 'USERENV', 'SID') ;

+0

不幸的是,程序列很容易被欺騙('cp sqlplus your_application_name'),您不應該依賴它來提高安全性。 – 2010-05-31 10:11:10

+0

謝謝,爲了指出這一點,我很高興爲展示不這樣做。 – Rene 2010-06-01 07:57:37

2

您可以使用代理用戶來限制對數據庫的訪問。您的用戶只能通過中間層帳戶連接(身份驗證)並激活角色(授權)。他們不需要知道他們的DB密碼。它們可以通過外部驗證(例如AD)。

請參閱this thread on AskTomthe documentation以供進一步閱讀。

相關問題