Oracle

在 Oracle 中執行 PL/SQL 工作的應用程序開發人員的安全性

  • January 7, 2011

您如何處理 Oracle 中缺少 Schema 級別的權限?Oracle 的安全架構適用於只需要對象級權限的應用程序,也適用於幾乎不需要限制的 DBA。然而,對於使用前端應用程序和多模式中的 PL/SQL 進行開發的程序員來說,架構中似乎存在一個巨大的漏洞。以下是我的一些選項及其缺點:

  1. 讓每個程序員在自己的模式中進行開發。DBA 將向需要它們的程序員授予對象級特權。任何包開發都必須由 DBA 完成。主要的缺點是程序員會將數據庫當作一個比特桶來使用,從而損害數據庫的性能。我希望程序員在數據庫中進行開發,但是這種方法會大大阻礙它。
  2. 為每個程序員提供他們需要在其中進行開發的十幾個模式的使用者名/密碼。授予這些應用程序模式權限以創建過程、表等。這種方法的一些缺點是程序員必須維護多個登錄名,並且很少以自己的身份登錄。跨模式開發也很困難。
  3. 授予程序員對他們需要為其進行開發的每個模式的代理身份驗證權限。這使他們能夠以自己的身份登錄,而無需授予他們代理權限以外的其他權限。缺點包括程序員必須為他們代理的每個模式維護單獨的連接,跨模式開發更加麻煩,因為連接必須不斷更改,並且使用通過身份驗證的公共數據庫連結的包不會在代理連接內編譯。
  4. 給每個程序員 DBA 權限。– 這裡的缺點是安全性。任何模式程序員都不能被排除在任何模式之外,任何程序員都可以冒充任何其他程序員 (DBA)。

似乎缺少授予每個程序員 SELECT/INSERT/CREATE/etc 的選項。他們需要在其中進行開發的架構的權限。他們以自己的身份登錄以使用一個連接完成工作。他們有權訪問的架構中的新對象立即可用。

我錯過了什麼嗎?您如何處理進行 PL/SQL 開發的應用程序程序員?

早在我在 Oracle 商店工作的日子裡,我們有一個特定的“開發”(開發)伺服器,它的安全限制與“生產”(生產)伺服器不同。開發人員可以做他們需要的任何事情,然後我們將必要的腳本交給 DBA 以應用於生產伺服器。

對於我們的關鍵系統(SCT Banner,用於跟踪班級和學生,以及 Oracle Financials),還有“測試”和“種子”伺服器。測試是在東西從開發遷移到產品之前進行使用者驗收測試;“種子”是軟體的庫存安裝,所以如果我們發現一個錯誤,我們可以驗證它是我們引入的還是來自 SCT 或 Oracle 的軟體。

引用自:https://dba.stackexchange.com/questions/305