2014-01-14 18 views
0

我正在處理用戶通過Windows應用程序訪問Oracle數據庫的系統。每個用戶都有自己的Oracle帳戶,有時具有多個角色,並且必須通過應用程序向Oracle提供憑據。它出於安全目的以這種方式實施。這是一個很好的做法嗎?每個用戶在Oracle數據庫上擁有自己的帳戶是否可行?

+0

我會說這取決於您的應用程序和您的要求。現在,這樣做並不常見,通常安全性是在應用程序層控制的。但是在數據庫上執行它並沒有錯,我能想到的主要原因是不花時間創建應用程序安全層。這是一個很好的實踐或不,我真的不知道。如果你的應用程序正在向用戶返回「安全錯誤」,我會說它沒問題。 –

回答

1

如果您向用戶提供Windows應用程序使用的Oracle憑據,那麼他還可以使用另一個SQL客戶端連接到數據庫。這意味着您必須完全保護數據庫用戶級別的應用程序:

  • 允許他訪問和更改他被授權的數據(在表,列和行級別上)。注意這可能需要一些複雜的邏輯,例如只有活躍客戶才能修改訂單狀態。
  • 刪除數據字典視圖不必要的訪問
  • 刪除存儲過程和程序包不必要的訪問(很多工具包都是默認授予public!)

這是一般很難識別出所有潛在的安全問題並在沒有熟練的DBA的幫助下正確實施訪問控制。

+1

我想你已經得到了這個錯誤的方式 - 當你創建一個用戶時,默認情況下它沒有特權 - 你必須明確地授予它訪問它所需要的東西的權限。在所有用戶使用單個數據庫帳戶連接到數據庫的情況下,您的觀點具有更高的有效性,從而將安全負擔轉移到應用程序層。 –

+0

@JeffreyKemp:是的,在經過第二次思考之後,你絕對是對的!由於我上面寫的原因,您應該設置個人賬戶,共享賬戶需要擁有過多的權限。至少這是桌面應用程序的情況,它需要直接連接到數據庫。感謝您指出:) –

相關問題