利用Oracle許可實現更好控制Linux(轉)

BSDLite發表於2007-08-17
利用Oracle許可實現更好控制Linux(轉)[@more@]Oracle許可安全(grant security)有這樣的一個缺點,要維護所有的訪問角色並將這些角色分配給終端使用者是非常困難的。為了解決這些問題並簡化Oracle的安全模式,Oracle引入了許可執行方法(grant execute method)。使用許可執行方法,所有的資料訪問程式碼都會被封裝進Oracle的儲存過程裡,而終端使用者會被賦予執行這段程式碼的能力。

許可執行安全模式的設計

同特定的許可模式(在這個模式下,特定的資料庫許可權被賦予特定的使用者)不同,許可執行模式允許使用者被賦予執行的訪問權,而不需要任何資料庫的許可權。在Oracle裡,這叫做定義者的權利(definer right)。當程式碼被執行的時候,終端使用者就取得了儲存過程定義者對資料庫的訪問許可權。同標準的許可安全模式相比,定義者權利具有多個重要的優勢,主要是訪問規則的簡化。

在Oracle裡,你可能也會使用呼叫者權利(invoker right),透過它,終端使用者將只能使用由標準許可安全模式所分配的許可權來執行儲存過程。呼叫者權利要更復雜一些(這也是很多Oracle設計者更不願意看到的),因為還必須實現Oracle許可安全。

很明顯,許可執行模式需要仔細的前期設計。開發人員必須被迫遵照設計標準,建立Oracle儲存過程和函式,它們然後會被封裝程式序包裡。

從操作過程上講,這要求Oracle的設計人員為系統預先確定過程碼(process code),並定義一組執行所有資料庫訪問和處理的程式包。

許可執行安全模式的好處

許可執行模式尤其引起了Oracle設計者的關注,因為它還有其他幾個好處:

所有的過程碼和SQL都被儲存在資料字典裡——

許可執行模式允許所有的SQL和程式都駐留在資料字典裡,在這裡它們能夠被很容易地找到、修改和調整。

很容易就能夠透過過程碼來實現快速執行——

在Oracle9i裡,所有的儲存過程都能夠被編譯,還能夠使用dbms_shared_pool.keep過程被放在在Oracle的庫緩衝區裡。這就實現了應用程式程式碼的超高速執行。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-963814/,如需轉載,請註明出處,否則將追究法律責任。

相關文章