提高Oracle資料庫應用系統安全的舉例與分析?

才智咖 人氣:2.83W

趙晉 王維民?

提高Oracle資料庫應用系統安全的舉例與分析?

(合肥市電信局計算中心)??

摘要 本文介紹了作者為了提高Oracle資料庫安全所進行 的一些有益嘗試。?

關鍵詞 Oracle資料庫 安全??

1. Oracle資料庫安全的幾個基本概念?

1.1帳戶安全(Account Security)?

要在資料庫中訪問資料,就必須訪問該資料庫的一個帳戶。每個帳戶必須指定一個口令。口 令是在帳戶建立的時候設定的,可由DBA或使用者進行修改。?

1.2系統級許可權(System-level Privilege)?

系統級許可權可以建立從系統級許可權全集到擴充套件的基本系統級的各類角色。比如,Connect,Re source和DBA就是分別提供給使用者,開發者及DBA的標準角色。?

1.3物件安全性(Object Security)?

使用者可以通過grant命令將自己建立的一些許可權授予其他使用者使用,也可以給其他使用者授予 對物件授權的許可權。例如,可以授予一個使用者擁有對本使用者表授予select 許可權的許可權。?

1.4審計(Auditing)?

Oracle具有審計發生在其內部的所有操作——包括註冊企圖,物件訪問和資料庫操作——的 能力。審計的結果儲存在資料庫的審計表中。?

2. 應用例項與分析?

在一些較大規模的Client/Server系統中,Client端的應用程式一般是通過主程式中的語句 實現與資料庫的連線。這種情況下,任何人開啟源程式便能清楚瞭解資料庫的連線口令,這 就可能導致安全性問題。經常改變資料庫密碼是一個辦法,而若要改變資料庫使用者的.密碼, 就需重新編寫相關程式,並對Client端的有關程式進行更新,對於Client端多而分散的系統 ,實際運作很不方便。能不能讓這些工作簡單易行一些呢?我們在工作中進行了一些嘗試。 ?

我單位資料庫環境為Oracle7.3,開發工具是Develope2000。收費系統是我單位的核心繫統之 一,佔有極其重要的地位,其Client端分散在市區的數個營業點,通過都會網路與主機(小型 機)相連。收費系統在資料庫中的使用者名稱為SFYY(收費應用)。?

試驗的步驟是這樣的:?

2.1在收費小型機Oracle系統的system使用者(DBA)下,建立新使用者test;?

create user test?

identified by carton?

default tablespace dataspace1?

quota 100K?

2.2對test使用者授以許可權;?

grant create session to test;?

grant resource to test;?

2.3在test使用者下建立一個儲存函式mmtranslate,它其實是一個加密程式。下面是一個簡 單的例子。?

function mmtranslate(m varchar2)?

return varchar2?

as?

i number(2);?

kk varchar2(10);?

begin?

kk:=′′;?

i:=1;?

loop?

if i