詳解數(shù)據(jù)加/脫密處理的主要流程
數(shù)據(jù)庫加/脫密引擎是數(shù)據(jù)庫加密系統(tǒng)的核心部件,它位于應(yīng)用程序與數(shù)據(jù)庫服務(wù)器之間,負責在后臺完成數(shù)據(jù)庫信息的加/脫密處理,對應(yīng)用開發(fā)人員和操作人員來說是透明的。數(shù)據(jù)加/脫密引擎沒有操作界面,在需要時由操作系統(tǒng)自動加載并駐留在內(nèi)存中,通過內(nèi)部接口與加密字典管理程序和用戶應(yīng)用程序通訊。數(shù)據(jù)庫加/脫密引擎由三大模塊組成:加/脫密處理模塊、用戶接口模塊和數(shù)據(jù)庫接口模塊,如圖4所示。其中,"數(shù)據(jù)庫接口模塊"的主要工作是接受用戶的操作請求,并傳遞給"加/脫密處理模塊",此外還要代替"加/脫密處理模塊"去訪問數(shù)據(jù)庫服務(wù)器,并完成外部接口參數(shù)與加/脫密引擎內(nèi)部數(shù)據(jù)結(jié)構(gòu)之間的轉(zhuǎn)換。"加/脫密處理模塊"完成數(shù)據(jù)庫加/脫密引擎的初始化、內(nèi)部專用命令的處理、加密字典信息的檢索、加密字典緩沖區(qū)的管理、SQL命令的加密變換、查詢結(jié)果的脫密處理以及加脫密算法實現(xiàn)等功能,另外還包括一些公用的輔助函數(shù)。
數(shù)據(jù)加/脫密處理的主要流程如下:
1)對SQL命令進行語法分析,如果語法正確,轉(zhuǎn)下一步;如不正確,則轉(zhuǎn)6),直接將SQL命令交數(shù)據(jù)庫服務(wù)器處理。
2)是否為數(shù)據(jù)庫加/脫密引擎的內(nèi)部控制命令?如果是,則處理內(nèi)部控制命令,然后轉(zhuǎn)7);如果不是則轉(zhuǎn)下一步。
3)檢查數(shù)據(jù)庫加/脫密引擎是否處于關(guān)閉狀態(tài)或SQL命令是否只需要編譯?如果是則轉(zhuǎn)6),否則轉(zhuǎn)下一步。
4)檢索加密字典,根據(jù)加密定義對SQL命令進行加脫密語義分析。
5)SQL命令是否需要加密處理?如果是,則將SQL命令進行加密變換,替換原SQL命令,然后轉(zhuǎn)下一步;否則直接轉(zhuǎn)下一步。
6)將SQL命令轉(zhuǎn)送數(shù)據(jù)庫服務(wù)器處理。
7)SQL命令執(zhí)行完畢,清除SQL命令緩沖區(qū)。
【編輯推薦】