一種讀寫數(shù)據(jù)庫的數(shù)據(jù)的方法和應(yīng)用應(yīng)答裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫領(lǐng)域,尤其涉及一種讀寫數(shù)據(jù)庫的數(shù)據(jù)的方法和應(yīng)用應(yīng)答裝置。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中公開了一種數(shù)據(jù)庫加密系統(tǒng),包括:數(shù)據(jù)庫設(shè)備,所述數(shù)據(jù)庫設(shè)備包括數(shù)據(jù)庫以及控制數(shù)據(jù)庫操作的執(zhí)行的數(shù)據(jù)庫控制裝置;以及用戶設(shè)備,所述用戶設(shè)備經(jīng)由網(wǎng)絡(luò)連接到所述數(shù)據(jù)庫控制裝置,其中所述用戶設(shè)備還包括:密鑰使用裝置,所述密鑰使用裝置管理用于加密和解密的密鑰信息;安全性配置裝置,所述安全性配置裝置配置與所述數(shù)據(jù)庫中所存儲的數(shù)據(jù)和/或元數(shù)據(jù)的安全性的配置有關(guān)的信息;第一存儲單元,所述第一存儲單元存儲與所述安全性的配置有關(guān)的信息;以及應(yīng)用應(yīng)答裝置,所述應(yīng)用應(yīng)答裝置接收所述數(shù)據(jù)庫設(shè)備發(fā)布的數(shù)據(jù)庫操作命令,并且通過參考所述第一存儲單元的所述信息,確定是否需要針對由數(shù)據(jù)庫操作命令處理的數(shù)據(jù)和/或元數(shù)據(jù)的加密,其中如果需要加密,所述應(yīng)用應(yīng)答裝置將已經(jīng)通過使用對應(yīng)于所述數(shù)據(jù)和/或元數(shù)據(jù)的所述安全性的加密算法、根據(jù)所述密鑰使用裝置的密鑰信息而被加密的經(jīng)加密數(shù)據(jù)和/或經(jīng)加密元數(shù)據(jù),作為所述數(shù)據(jù)庫操作命令的數(shù)據(jù)和/或元數(shù)據(jù),傳送給所述數(shù)據(jù)庫控制裝置,以致使所述數(shù)據(jù)庫控制裝置執(zhí)行所述數(shù)據(jù)庫操作,如果不需要加密,所述應(yīng)用應(yīng)答裝置將所述數(shù)據(jù)庫操作命令按原樣傳送給所述數(shù)據(jù)庫控制裝置。
[0003]現(xiàn)有技術(shù)中還公開了一種方法,通過對數(shù)據(jù)庫驅(qū)動的代理實現(xiàn)對應(yīng)用層執(zhí)行的SQL (Structured Query Language,結(jié)構(gòu)化查詢語言)語句的分析,并根據(jù)分析結(jié)果進行數(shù)據(jù)加密和返回的結(jié)果集的數(shù)據(jù)解密過程。與現(xiàn)有技術(shù)相比,本發(fā)明的應(yīng)用層透明的數(shù)據(jù)庫加密方法對應(yīng)用層的存取的表中敏感字段數(shù)據(jù)進行加密和解密,在不影響開發(fā)人員和用戶讀取的情況下能夠保證數(shù)據(jù)的安全存儲。
[0004]以上兩種方案,對密鑰存放模塊的讀寫效率并沒有進行充分的考慮和說明,而數(shù)據(jù)庫節(jié)點往往是這個應(yīng)用系統(tǒng)的性能瓶頸,因此,如何提高密鑰的讀寫效率是一個值得解決的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于解決上層應(yīng)用對底層關(guān)系數(shù)據(jù)庫進行讀寫加密數(shù)據(jù)時,密鑰的讀寫效率低的問題。
[0006]為實現(xiàn)上述目的,本發(fā)明提供一種讀寫數(shù)據(jù)庫的數(shù)據(jù)的方法,應(yīng)用于分布式存儲系統(tǒng)的應(yīng)用應(yīng)答裝置中,讀寫數(shù)據(jù)庫的數(shù)據(jù)的方法包括以下步驟:
[0007]截獲數(shù)據(jù)庫使用應(yīng)用裝置發(fā)出的要求讀寫數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的SQL讀寫請求;
[0008]獲取存放于分布式密鑰信息存儲裝置內(nèi)與所述數(shù)據(jù)對應(yīng)的密鑰;
[0009]根據(jù)所述SQL讀寫請求應(yīng)用所述密鑰加密或解密所述數(shù)據(jù)并返回給所述數(shù)據(jù)庫使用應(yīng)用裝置。
[0010]優(yōu)選地,所述數(shù)據(jù)包括表名或者字段名,所述獲取存放于分布式密鑰信息存儲裝置內(nèi)與所述數(shù)據(jù)對應(yīng)的密鑰的步驟具體包括:
[0011]根據(jù)所述數(shù)據(jù)的表名或者字段名獲取對應(yīng)密鑰。
[0012]優(yōu)選地,所述數(shù)據(jù)為加密數(shù)據(jù),所述SQL讀寫請求包括SQL讀請求,所述根據(jù)所述SQL讀寫請求應(yīng)用所述密鑰加密或解密所述數(shù)據(jù)并返回給所述數(shù)據(jù)庫使用應(yīng)用裝置的步驟具體包括:
[0013]傳遞SQL讀請求給所述數(shù)據(jù)庫后獲取所述加密數(shù)據(jù),應(yīng)用所述密鑰解密所述加密數(shù)據(jù);
[0014]返回解密后的數(shù)據(jù)給所述數(shù)據(jù)庫使用應(yīng)用裝置。
[0015]優(yōu)選地,所述SQL讀寫請求包括SQL寫請求,所述根據(jù)所述SQL讀寫請求應(yīng)用所述密鑰加密或解密所述數(shù)據(jù)并返回給所述數(shù)據(jù)庫使用應(yīng)用裝置的步驟具體包括:
[0016]應(yīng)用所述密鑰加密所述數(shù)據(jù)后傳遞SQL寫請求給所述數(shù)據(jù)庫;
[0017]返回所述數(shù)據(jù)庫發(fā)出的寫數(shù)據(jù)成功信息給所述數(shù)據(jù)庫使用應(yīng)用裝置。
[0018]為了解決上述的技術(shù)問題,本發(fā)明進一步提供一種應(yīng)用應(yīng)答裝置,所述應(yīng)用應(yīng)答裝置包括:
[0019]截獲模塊,用于截獲數(shù)據(jù)庫使用應(yīng)用裝置發(fā)出的要求讀寫數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的SQL讀寫請求;
[0020]獲取模塊,用于獲取存放于分布式密鑰信息存儲裝置內(nèi)與所述數(shù)據(jù)對應(yīng)的密鑰;
[0021]讀寫模塊,用于根據(jù)所述SQL讀寫請求應(yīng)用所述密鑰加密或解密所述數(shù)據(jù)并返回給所述數(shù)據(jù)庫使用應(yīng)用裝置。
[0022]優(yōu)選地,所述獲取模塊,具體用于根據(jù)所述數(shù)據(jù)的表名或者字段名獲取對應(yīng)密鑰。
[0023]優(yōu)選地,所述讀寫模塊包括:
[0024]解密單元,用于傳遞SQL讀請求給所述數(shù)據(jù)庫后獲取所述加密數(shù)據(jù),應(yīng)用所述密鑰解密所述加密數(shù)據(jù);
[0025]解密返回單元,用于返回解密后的數(shù)據(jù)給所述數(shù)據(jù)庫使用應(yīng)用裝置。
[0026]優(yōu)選地,所述讀寫模塊還包括:
[0027]加密單元,用于應(yīng)用所述密鑰加密所述數(shù)據(jù)后傳遞SQL寫請求給所述數(shù)據(jù)庫;
[0028]加密返回單元,用于返回所述數(shù)據(jù)庫發(fā)出的寫數(shù)據(jù)成功信息給所述數(shù)據(jù)庫使用應(yīng)田ft晉
/TJ 目.Ο
[0029]為了解決上述的技術(shù)問題,本發(fā)明進一步提供一種分布式密鑰信息存儲裝置,所述分布式密鑰信息存儲裝置包括,
[0030]接收模塊,用于接收應(yīng)用應(yīng)答裝置發(fā)出的獲取密鑰的請求,所述密鑰與使用應(yīng)用裝置發(fā)出的SQL讀寫請求中數(shù)據(jù)庫的數(shù)據(jù)對應(yīng);
[0031]發(fā)送模塊,用于發(fā)送所述密鑰給所述應(yīng)用應(yīng)答裝置。
[0032]優(yōu)選地,所述數(shù)據(jù)包括表名或者字段名,所述分布式密鑰信息存儲裝置,所述密鑰與所述數(shù)據(jù)的表名或者字段名對應(yīng)。
[0033]本發(fā)明提供的一種讀寫數(shù)據(jù)庫的數(shù)據(jù)的方法,應(yīng)用于分布式存儲系統(tǒng)的應(yīng)用應(yīng)答裝置中,包括以下步驟:截獲數(shù)據(jù)庫使用應(yīng)用裝置發(fā)出的要求讀寫數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的SQL讀寫請求;獲取存放于分布式密鑰信息存儲裝置內(nèi)與所述數(shù)據(jù)對應(yīng)的密鑰;應(yīng)用所述密鑰加密或解密所述數(shù)據(jù)后傳遞SQL讀寫請求給所述數(shù)據(jù)庫并將讀寫結(jié)果返回給所述數(shù)據(jù)庫使用應(yīng)用裝置。所能實現(xiàn)的有益效果為提高密鑰的讀寫效率和數(shù)據(jù)庫的讀寫性能。
【附圖說明】
[0034]圖1為本發(fā)明讀寫數(shù)據(jù)庫的數(shù)據(jù)的方法一實施例的流程示意圖;
[0035]圖2為圖1中步驟S300的一細化流程示意圖;
[0036]圖3為本發(fā)明讀寫數(shù)據(jù)庫的數(shù)據(jù)的方法中讀數(shù)據(jù)的一實施例的流程框圖;
[0037]圖4為圖1中步驟S300的另一細化流程示意圖;
[0038]圖5為本發(fā)明讀寫數(shù)據(jù)庫的數(shù)據(jù)的方法中寫數(shù)據(jù)的一實施例的流程框圖;
[0039]圖6為本發(fā)明應(yīng)用應(yīng)答裝置一實施例的結(jié)構(gòu)框圖;
[0040]功能模塊示意圖;
[0041]圖7為圖6中讀寫模塊的功能模塊一實施例示意圖;
[0042]圖8為圖6中讀與t旲塊的功能t旲塊另一實施例意圖;
[0043]圖9為本發(fā)明分布式密鑰信息存儲裝置一實施例的結(jié)構(gòu)框圖。
[0044]本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
【具體實施方式】
[0045]應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0046]本發(fā)明提供一種寫數(shù)據(jù)庫的數(shù)據(jù)的方法,應(yīng)用于分布式存儲系統(tǒng)的應(yīng)用應(yīng)答裝置中,參照圖1,在一實施例中,該讀寫數(shù)據(jù)庫的數(shù)據(jù)的方法包括以下步驟:
[0047]步驟S100、截獲數(shù)據(jù)庫使用應(yīng)用裝置發(fā)出的要求讀寫數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的SQL讀寫請求。
[0048]數(shù)據(jù)庫使用應(yīng)用裝置發(fā)起SQL讀寫請求,分布式存儲系統(tǒng)的應(yīng)用應(yīng)答裝置截獲數(shù)據(jù)庫使用應(yīng)用裝置的SQL讀寫請求,數(shù)據(jù)庫使用應(yīng)用裝置和應(yīng)用應(yīng)答裝置的接口可以為API (Applicat1n Programming Interface,應(yīng)用程序編程接口)接口或 SQL 接口,API 為 C語言或JAVA語言。
[0049]步驟S200、獲取存放于分布式密鑰信息存儲裝置內(nèi)與所述數(shù)據(jù)對應(yīng)的密鑰。
[0050]應(yīng)用應(yīng)答裝置如果分析到要讀寫的數(shù)據(jù)庫的數(shù)據(jù)為加密數(shù)據(jù),則根據(jù)讀取的表名、字段名到分布式密鑰信息存儲裝置獲取相關(guān)密鑰。
[0051]步驟S300、根據(jù)所述SQL讀寫請求應(yīng)用所述密鑰加密或解密所述數(shù)據(jù)并返回給所述數(shù)據(jù)庫使用應(yīng)用裝置。
[0052]應(yīng)用應(yīng)答裝置將SQL讀寫請求傳遞至數(shù)據(jù)庫,應(yīng)用密鑰對讀寫數(shù)據(jù)進行加密或解密,數(shù)據(jù)庫返回相關(guān)信息,應(yīng)用應(yīng)答裝置接收返回信息,并將返回信息回傳給數(shù)據(jù)庫使用應(yīng)田ft晉
/TJ 目.Ο
[0053]本實施例提供的一種讀寫數(shù)據(jù)庫的數(shù)據(jù)的方法,應(yīng)用于分布式存儲系統(tǒng)的應(yīng)用應(yīng)答裝置中,包括以下步驟:步驟S100、截獲數(shù)據(jù)庫使用應(yīng)用裝置發(fā)出的要求讀寫數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的SQL讀寫請求;步驟S200、獲取存放于分布式密鑰信息存儲裝置內(nèi)與所述數(shù)據(jù)對應(yīng)的密鑰;步驟S300、應(yīng)用所述密鑰加密或解密所述數(shù)據(jù)后傳遞SQL讀寫請求給所述數(shù)據(jù)庫并將讀寫結(jié)果返回給所述數(shù)據(jù)庫使用應(yīng)用裝置。本實施例所能實現(xiàn)的有益效果為提高密鑰的讀寫效率和數(shù)據(jù)庫的讀寫性能。
[0054]參見圖2,本實施例提供的一種讀寫數(shù)據(jù)庫的數(shù)據(jù)的方法,所述步驟S300包括:
[0055]步驟S310、傳遞SQL讀請求給所述數(shù)據(jù)庫后獲取所述加密數(shù)據(jù),應(yīng)用所述密鑰解密所述加密數(shù)據(jù)。
[0056]應(yīng)用應(yīng)答裝置將SQL讀請求傳遞至數(shù)據(jù)庫,數(shù)據(jù)庫返回相關(guān)數(shù)據(jù),返回的數(shù)據(jù)為加密數(shù)據(jù),應(yīng)用應(yīng)答裝置根據(jù)相關(guān)算法,利用獲得的密鑰將加密數(shù)據(jù)解密。
[0057]步驟S320、返回解密后的數(shù)據(jù)給所述數(shù)據(jù)庫使用應(yīng)用裝置。
[0058]應(yīng)用應(yīng)答裝置將解密后的數(shù)據(jù)回傳給數(shù)據(jù)庫使用應(yīng)用裝置,完成讀操作。
[0059]如圖3所示,圖3為本發(fā)明讀寫數(shù)據(jù)庫的數(shù)據(jù)的方法中讀數(shù)據(jù)的一實施例的流程框圖。
[0060]所述讀數(shù)據(jù)的步驟具體包括:
[0061]步驟301、數(shù)據(jù)庫使用應(yīng)用裝置發(fā)起SQL讀請求;
[0062]步驟302、應(yīng)用應(yīng)答裝置截獲數(shù)據(jù)庫使用應(yīng)用裝置發(fā)起的SQL讀請求,根據(jù)讀取的表名、字段名到分布式密鑰信息存儲裝置獲取相關(guān)密鑰;
[0