新四季網

一種數據倉庫中的數據保護方法及裝置與流程

2023-12-06 03:02:11

本發明涉及數據安全領域,尤其涉及一種數據倉庫中的數據保護方法及裝置。
背景技術:
::hive是一種數據倉庫基礎構架。它是一種可以存儲、查詢和分析存儲在分布式文件系統(hdfs)中的數據的機制,它將傳統的結構化數據表與hdfs上的數據文件進行映射,並提供簡單的類結構化查詢語言(sql),進行查詢。其中,sql也稱作查詢語言(hql),同時它可以將sql語句轉換為編程模型(mapreduce)任務進行運行,從而實現大規模數據的處理。hive中用於承載數據的資源實體包括資料庫、表、分區和桶,其中庫可以看成多個表的集合,所以可以認為用戶數據實際上都是存放在表、分區及桶三種實體對象中,所以,hive中所有的操作實際上都可以看成是對表、列、分區或桶的操作。hive作為大規模的數據倉庫和離線分析平臺,目前已得到了非常廣泛的應用,但隨之而來的數據安全性問題卻沒有引起足夠的重視。其中,hive的數據安全性問題體現在下面幾個方面:1、hive中所有用戶都是平行的,沒有系統超級管理員,無法對系統進行全局管理,無法限制某些非法用戶的訪問。2、hive中的各用戶之間可以相互授權,但是只能對表的操作進行授權,對於列、分區或桶無法進行授權,即只能允許或禁止用戶訪問某個表,導致無法根據需要對表數據進行列級別、分區級別、桶級別的操作控制,如只允許或禁止用戶訪問某幾列或訪問某幾個桶的數據等。3、更為重要的是,hive中的數據對應的數據文件是存放在hdfs上,hive對於存放在hdfs上的文件,通常採用的存儲格式是文本格式(text)或者記錄列文件格式(recordcolumnarfile,rcfile),如果某個hive用戶沒有得 到其他hive用戶的授權,獲得查詢其他用戶創建的表、列、分區或桶的權限,但仍然能通過其他方式直接獲取底層hdfs文件的方式,獲取數據信息,這樣相當於繞過了hive的上層的權限控制機制,給數據倉庫的數據安全造成了嚴重威脅。針對上述問題,目前暫時沒有發現完整、系統化的方案提出,現有技術往往通過第三方工具對數據進行簡單加密來進行數據保護或者通過引入安全認證(kerberos)組件對用戶進行認證。具體方法如下:現有方法1:hive現有的權限控制流程不變,在數據導入hive的表之前,就對原始數據採用第三方加密工具進行加密,再導入到hive的表中,收到查詢請求,先將數據從hive表中導出,再手工進行解密。缺點:只能有限的解決問題;由於要反覆進行數據的導入導出,操作繁瑣、耗時;第二,數據是在hive之外通過部署其他加密工具實現的,增加了系統的複雜性,而且,數據加密後,數據長度一般會增加,再導入到hive中時,會降低hive系統的導入效率。並且,由於數據是在進入hive之前加密的,無法借用hive的mapreduce處理能力。最後,只能按照指定方式(通常是一個表)進行數據加密,無法靈活的選擇加密對象,比如選擇某一個或幾個表、列、分區或桶等。現有方法2:在hive權限控制中引入第三方kerberos(網絡認證協議)組件:在hive的權限控制模塊中可以直接接入第三方的kerberos組件,作為權限控制模塊的一部分,通過kerberos組件進一步對用戶進行認證,防止惡意用戶偽造用戶。但這種方式部署成本比較高,而且非常複雜,kerberos組件生成證書和配置的步驟相當繁瑣,首次配置也許可以接受,但是對於用戶權限的修改,機器的減容擴容,會造成證書要重新生成,再分發證書,重啟系統。而且還要考慮kerberos的宕機導致整個集群無法服務的風險,加上kerberos的自身配置也比較複雜,而且存在效率問題,這些考慮,也導致kerberos在大數據上的應用比較稀少。另外,這個方式無法解決授權的級別問題,且這種方式無法對底層hdfs的數據施加保護。綜上所述,現有技術中的數據保護方法,存在安全機制不健全、操作繁瑣、 耗時,無法對表、列、分區及桶進行靈活操作,且保密程度不高、效率低下及部署成本較高的問題。技術實現要素:為了克服現有技術存在的上述問題,本發明的實施例提供了一種數據倉庫中的數據保護方法及裝置,能夠通過對數據倉庫用戶實施接入控制及列、分區或桶級別的權限控制,並結合對用戶數據進行加密,實現了對數據倉庫中的數據的有效保護。為了解決上述技術問題,本發明採用如下技術方案:依據本發明實施例的一個方面,提供了一種數據倉庫中的數據保護方法,包括:接收用戶輸入的用戶請求,所述用戶請求中攜帶有用戶身份信息和操作請求,其中,所述操作請求包括表級別的操作請求、列級別的操作請求、分區級別的操作請求和桶級別的操作請求中的一種或多種;判斷所述用戶身份信息及所述操作請求是否合法;若所述身份信息和所述操作請求均合法,則判斷所述操作請求的操作類型;若所述操作請求為非授權操作,則對數據倉庫中的新增數據或已有數據進行加密。其中,上述方案中,所述判斷所述用戶身份信息及所述操作請求是否合法,包括:根據所述用戶身份信息,判斷所述用戶是否存在於預先存儲的白名單中,若存在,則所述用戶身份信息合法;判斷執行所述操作請求的權限是否是所述用戶所具有的預設操作權限,若是,則所述操作請求合法。其中,上述方案中,所述非授權操作包括:創建表操作、數據導入操作、修改表操作、對已有數據的加密操作、數據查詢操作。其中,上述方案中,對數據倉庫中的新增數據進行加密,包括:獲取創建表操作,並根據所述創建表操作中攜帶的表的結構信息創建表;判斷所述創建表操作中是否攜帶有第一加密配置信息,其中,所述第一加 密配置信息包括需要加密的表的名稱、列的名稱、分區的名稱和桶的名稱中的一種或多種,以及加密/解密算法;若是,將所述第一加密配置信息存儲在加密信息表中;獲取數據導入操作,其中,所述數據導入操作中攜帶有需要導入數據的第一目標表的名稱、第一目標列的名稱、第一目標分區的名稱和第一目標桶的名稱中的一種或多種,其中,所述第一目標表包括創建的表中的一個或多個,所述第一目標列包括創建的表的一個或多個列,所述第一目標分區包括創建的表的一個或多個分區,所述第一目標桶包括創建的表的一個或多個桶;判斷所述第一目標表、所述第一目標列、所述第一目標分區和所述第一目標桶中的一種或多種在所述加密信息表中是否存儲有對應的加密算法;若是,則獲取與所述第一目標表、所述第一目標列、所述第一目標分區和所述第一目標桶中的一種或多種對應的加密算法;獲取所要導入的數據,並利用獲取的加密算法對所要導入的數據進行加密,獲得第一加密數據;將所述第一加密數據對應寫入到所述第一目標表、所述第一目標列、所述第一目標分區和所述第一目標桶中的一種或多種中。其中,上述方案中,對數據倉庫中的已有數據進行加密,包括:獲取修改表操作;判斷所述修改表操作中是否攜帶有第二加密配置信息,所述第二加密配置信息包括需要加密的第二目標表的名稱、第二目標列的名稱、第二目標分區的名稱和第二目標桶的名稱中的一種或多種,以及加密/解密算法;若是,利用所述修改表操作中攜帶的加密算法對所述第二目標表、所述第二目標列、所述第二目標分區、所述第二目標桶中的一種或多種中的數據進行加密;將所述第二加密配置信息存儲在所述加密信息表中。其中,上述方案中,對數據倉庫中的已有數據進行加密,包括:獲取對已有數據的加密操作,其中,所述對已有數據的加密操作中攜帶有待處理表的名稱以及第三加密配置信息,其中,所述第三加密配置信息包括需要加密的第三目標表的名稱、第三目標列的名稱、第三目標分區的名稱和第三 目標桶的名稱中的一種或多種,以及加密/解密算法,其中,所述第三目標表包括所述待處理表中的一個或多個,所述第三目標列包括所述待處理表的一個或多個列,所述第三目標分區包括所述待處理表的一個或多個分區,所述第三目標桶包括所述待處理表的一個或多個桶;創建與所述待處理表具有相同結構的臨時表;獲取數據查詢操作,並依據所述數據查詢操作查詢所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中的數據,獲得查詢數據;將所述查詢數據對應寫入所述臨時表中;利用所述對已有數據的加密操作中攜帶的加密算法,對寫入所述臨時表中的查詢數據進行加密,獲得第二加密數據;將所述第二加密數據以覆蓋方式對應寫入所述待處理表中;將所述第三加密配置信息存儲在所述加密信息表中;刪除所述臨時表。其中,上述方案中,所述獲取數據查詢操作,並依據所述數據查詢操作查詢所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中的數據,獲得查詢數據,包括:獲取所述數據查詢操作,其中,所述數據查詢操作中攜帶所述第三目標表的名稱、所述第三目標列的名稱、所述第三目標分區的名稱、所述第三目標桶的名稱中的一種或多種;根據所述數據查詢操作,從分布式文件系統中讀取所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中的數據;判斷所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中是否存在已加密數據;若是,從所述加密信息表中獲取與所述已加密數據所在的表、列、分區和桶中的一種或多種相對應的解密算法;利用所述解密算法,對所述已加密數據進行解密,獲得所述查詢數據。其中,上述方案中,所述判斷所述操作請求的操作類型之後,還包括:若所述操作請求為授權操作,則判斷所述授權操作中攜帶的所述用戶授權 其他用戶進行操作的表、列、分區和桶中的一種或多種是否屬於所述用戶;若是,則執行所述授權操作,否則,取消所述授權操作。其中,上述方案中,將所述第一加密配置信息或所述第二加密配置信息或所述第三加密配置信息存儲在所述加密信息表中之後,還包括:採用預設加密算法,對所述加密信息表中的數據進行加密。依據本發明實施例的另一個方面,還提供了一種數據倉庫中的數據保護裝置,包括:接收模塊,用於接收用戶輸入的用戶請求,所述用戶請求中攜帶有用戶身份信息和操作請求,其中,所述操作請求包括表級別的操作請求、列級別的操作請求、分區級別的操作請求和桶級別的操作請求中的一種或多種;第一判斷模塊,用於判斷所述用戶身份信息及所述操作請求是否合法;第二判斷模塊,用於當所述第一判斷模塊的判斷結果為是時,判斷所述操作請求的操作類型;加密模塊,用於當所述第二判斷模塊判斷所述操作請求為非授權操作時,對數據倉庫的新增數據或已有數據進行加密。其中,上述方案中,所述第一判斷模塊包括:第一判斷單元,用於根據所述用戶身份信息,判斷所述用戶是否存在於預先存儲的白名單中,若存在,則所述用戶身份信息合法;第二判斷單元,用於判斷執行所述操作請求的權限是否是所述用戶所具有的預設操作權限,若是,則所述操作請求合法。其中,上述方案中,所述非授權操作包括:創建表操作、數據導入操作、修改表操作、對已有數據的加密操作、數據查詢操作。其中,上述方案中,所述加密模塊包括:第一獲取單元,用於獲取創建表操作,並根據所述創建表操作中攜帶的表的結構信息創建表;第三判斷單元,用於判斷所述創建表操作中是否攜帶有第一加密配置信息,其中,所述第一加密配置信息包括需要加密的表的名稱、列的名稱、分區的名稱和桶的名稱中的一種或多種,以及加密/解密算法;第一存儲單元,用於當所述第三判斷單元的判斷結果為是時,將所述第一 加密配置信息存儲在加密信息表中;第二獲取單元,用於獲取數據導入操作,其中,所述數據導入操作中攜帶有需要導入數據的第一目標表的名稱、第一目標列的名稱、第一目標分區的名稱和第一目標桶的名稱中的一種或多種,其中,所述第一目標表包括創建的表中的一個或多個,所述第一目標列包括創建的表的一個或多個列,所述第一目標分區包括創建的表的一個或多個分區,所述第一目標桶包括創建的表的一個或多個桶;第四判斷單元,用於判斷所述第一目標表、所述第一目標列、所述第一目標分區和所述第一目標桶中的一種或多種在所述加密信息表中是否存儲有對應的加密算法;第三獲取單元,用於當所述第四判斷單元的判斷結果為是時,獲取與所述第一目標表、所述第一目標列、所述第一目標分區和所述第一目標桶中的一種或多種對應的加密算法;第一加密單元,用於獲取所要導入的數據,並利用獲取的加密算法對所要導入的數據進行加密,獲得第一加密數據;第一寫入單元,用於將所述第一加密數據對應寫入到所述第一目標表、所述第一目標列、所述第一目標分區和所述第一目標桶中的一種或多種中。其中,上述方案中,所述加密模塊包括:第四獲取單元,用於獲取修改表操作;第五判斷單元,用於判斷所述修改表操作中是否攜帶有第二加密配置信息,所述第二加密配置信息包括需要加密的第二目標表的名稱、第二目標列的名稱、第二目標分區的名稱和第二目標桶的名稱中的一種或多種,以及加密/解密算法;第二加密單元,用於在所述第五判斷單元的判斷結果為是時,利用所述修改表操作中攜帶的加密算法對所述第二目標表、所述第二目標列、所述第二目標分區、所述第二目標桶中的一種或多種中的數據進行加密;第二存儲單元,用於將所述第二加密配置信息存儲在所述加密信息表中。其中,上述方案中,所述加密模塊包括:第五獲取單元,用於獲取對已有數據的加密操作,其中,所述對已有數據 的加密操作中攜帶有待處理表的名稱以及第三加密配置信息,其中,所述第三加密配置信息包括需要加密的第三目標表的名稱、第三目標列的名稱、第三目標分區的名稱和第三目標桶的名稱中的一種或多種,以及加密/解密算法,其中,所述第三目標表包括所述待處理表中的一個或多個,所述第三目標列包括所述待處理表的一個或多個列,所述第三目標分區包括所述待處理表的一個或多個分區,所述第三目標桶包括所述待處理表的一個或多個桶;創建單元,用於創建與所述待處理表具有相同結構的臨時表;查詢單元,用於獲取數據查詢操作,並依據所述數據查詢操作查詢所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中的數據,獲得查詢數據;第二寫入單元,用於將所述查詢數據對應寫入所述臨時表中;第三加密單元,用於利用所述對已有數據的加密操作中攜帶的加密算法,對寫入所述臨時表中的查詢數據進行加密,獲得第二加密數據;第三寫入單元,用於將所述第二加密數據以覆蓋方式對應寫入所述待處理表中;第三存儲單元,用於將所述第三加密配置信息存儲在所述加密信息表中;刪除單元,用於刪除所述臨時表。其中,上述方案中,所述查詢單元包括:第一獲取子單元,用於獲取所述數據查詢操作,其中,所述數據查詢操作中攜帶所述第三目標表的名稱、所述第三目標列的名稱、所述第三目標分區的名稱、所述第三目標桶的名稱中的一種或多種;查詢子單元,用於根據所述數據查詢操作,從分布式文件系統中讀取所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中的數據;判斷子單元,用於判斷所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中是否存在已加密數據;第二獲取子單元,用於當所述判斷子單元的判斷結果為是時,從所述加密信息表中獲取與所述已加密數據所在的表、列、分區和桶中的一種或多種相對應的解密算法;解密子單元,用於利用所述解密算法,對所述已加密數據進行解密,獲得所述查詢數據。其中,上述方案中,其特徵在於,還包括:授權模塊,用於當所述第二判斷模塊判斷所述操作請求為授權操作,判斷所述授權操作中攜帶的所述用戶授權其他用戶進行操作的表、列、分區和桶中的一種或多種是否屬於所述用戶,若是,則執行所述授權操作,否則,取消所述授權操作。其中,上述方案中,所述加密模塊還包括:第四加密單元,用於採用預設加密算法,對所述加密信息表中的數據進行加密。本發明實施例的有益效果是:本發明實施例的數據倉庫中的數據保護方法,通過對接收的用戶請求中攜帶的用戶身份信息及操作請求的合法性判斷,實現了對數據倉庫用戶的接入控制,防止了非法用戶的訪問;通過表級別、列級別、分區級別以及桶級別的操作請求實現了對用戶數據的靈活操作;通過對用戶數據的加密,進一步實現了對數據倉庫中的數據的保護。因此,本發明實施例的數據倉庫中的數據保護方法,能夠實現對數據倉庫中的數據的有效保護。附圖說明圖1表示本發明第一實施例的數據倉庫中的數據保護方法的流程圖;圖2表示本發明第二實施例的數據倉庫中的數據保護裝置的結構框圖之一;圖3表示本發明第二實施例的數據倉庫中的數據保護裝置的結構框圖之二;圖4表示本發明第三實施例的數據倉庫中的數據保護裝置的結構框圖;圖5表示本發明第三實施例的數據倉庫中的數據保護裝置的應用主流程圖;圖6表示本發明第三實施例的數據倉庫中的數據保護裝置的應用的第一分支流程圖;圖7表示本發明第三實施例的數據倉庫中的數據保護裝置的應用的第二分支流程圖;圖8表示本發明第三實施例的數據倉庫中的數據保護裝置的應用的第三分支流程圖;圖9表示本發明第三實施例的數據倉庫中的數據保護裝置的應用的第四分支流程圖。具體實施方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這裡闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,並且能夠將本公開的範圍完整的傳達給本領域的技術人員。第一實施例依據本發明實施例的一個方面,提供了一種數據倉庫中的數據保護方法,該方法,首先,接收用戶輸入的用戶請求,所述用戶請求中攜帶有用戶身份信息和操作請求,其中,所述操作請求包括表級別的操作請求、列級別的操作請求、分區級別的操作請求和桶級別的操作請求中的一種或多種;接著,判斷所述用戶身份信息及所述操作請求是否合法;再次,若所述身份信息和所述操作請求均合法,則判斷所述操作請求的操作類型;最後,若所述操作請求為非授權操作,則對數據倉庫中的新增數據或已有數據進行加密。因此,本發明實施例的數據倉庫中的數據保護方法,通過對數據倉庫用戶實施接入控制及列、分區或桶級別的權限控制,並結合對用戶數據進行加密,實現了對數據倉庫中的數據的有效保護。如圖1所示,該方法包括:步驟s11、接收用戶輸入的用戶請求。其中,所述用戶請求中攜帶有用戶身份信息和操作請求,其中,所述操作請求包括表級別的操作請求、列級別的操作請求、分區級別的操作請求和桶級別的操作請求中的一種或多種。當用戶需要接入hive系統,進行某一數據操作時,該用戶會向hive系統 輸入一用戶請求。為了方便對用戶的身份信息進行核查,判斷該用戶是否是合法用戶,需要在該用戶請求中攜帶用戶的身份信息,例如用戶名稱,用戶的接入ip等。步驟s13、判斷所述用戶身份信息及所述操作請求是否合法。其中,步驟s13包括:根據所述用戶身份信息,判斷所述用戶是否存在於預先存儲的白名單中,若存在,則所述用戶身份信息合法;判斷執行所述操作請求的權限是否是所述用戶所具有的預設操作權限,若是,則所述操作請求合法。在本發明實施例中,在hive系統中存儲有白名單,該白名單中保存著具有數據訪問權限的用戶的身份信息,例如用戶名稱,用戶的接入ip等。當收到用戶請求時,通過讀取白名單來判斷攜帶在用戶請求中的用戶身份信息是否合法,即判斷該用戶是否是白名單中記錄的用戶,若是,則該用戶身份信息合法,允許該用戶接入,否則,拒絕。另外,在hive系統中還存儲有合法用戶對hive系統中的數據進行操作的預設操作權限。例如,將各個合法用戶所具有的預設操作權限存儲在操作權限表中。當判斷接入hive系統的用戶屬於合法用戶後,通過讀取操作權限表,判斷執行操作請求的權限,是否是該用戶所具有的預設操作權限,即判斷該用戶是否具有對操作請求針對的表或列或分區或桶的操作權限(例如判斷該用戶是否具有創建表的權限),若是,則該操作請求合法,否則拒絕執行該操作請求,流程結束。步驟s15、若所述身份信息和所述操作請求均合法,則判斷所述操作請求的操作類型。其中,操作請求的操作類型分為授權操作和非授權操作。授權操作指的是hive系統的合法用戶可以授權其他用戶訪問該合法用戶的某個列、某個分區或某個桶。非授權操作包括創建表操作、數據導入操作、修改表操作、對已有數據的加密操作、數據查詢操作。其中,當操作請求為授權操作時,需要判斷所述授權操作中攜帶的所述用戶授權其他用戶進行操作的表、列、分區和桶中的一種或多種是否屬於所述用 戶;若是,則執行所述授權操作,否則,取消所述授權操作。由此可知,本發明實施例,提供基於表、列、分區、桶級別的靈活授權,允許hive用戶授權其他用戶訪問某個列、某個分區或某個桶。當操作請求為非授權操作時,執行步驟s17。步驟s17、若所述操作請求為非授權操作,則對數據倉庫中的新增數據或已有數據進行加密。其中,對數據倉庫中的新增數據進行加密的過程包括在創建表和數據導入的過程中。具體地,包括:獲取創建表操作,並根據所述創建表操作中攜帶的表的結構信息創建表;判斷所述創建表操作中是否攜帶有第一加密配置信息,其中,所述第一加密配置信息包括需要加密的表的名稱、列的名稱、分區的名稱和桶的名稱中的一種或多種,以及加密/解密算法;若是,將所述第一加密配置信息存儲在加密信息表中;獲取數據導入操作,其中,所述數據導入操作中攜帶有需要導入數據的第一目標表的名稱、第一目標列的名稱、第一目標分區的名稱和第一目標桶的名稱中的一種或多種,其中,所述第一目標表包括創建的表中的一個或多個,所述第一目標列包括創建的表的一個或多個列,所述第一目標分區包括創建的表的一個或多個分區,所述第一目標桶包括創建的表的一個或多個桶;判斷所述第一目標表、所述第一目標列、所述第一目標分區和所述第一目標桶中的一種或多種在所述加密信息表中是否存儲有對應的加密算法;若是,則獲取與所述第一目標表、所述第一目標列、所述第一目標分區和所述第一目標桶中的一種或多種對應的加密算法;獲取所要導入的數據,並利用獲取的加密算法對所要導入的數據進行加密,獲得第一加密數據;將所述第一加密數據對應寫入到所述第一目標表、所述第一目標列、所述第一目標分區和所述第一目標桶中的一種或多種中。例如,需要創建一個表x,且要求位於表x的a列和b列中的數據加密。所以,首先需要根據創建表操作中攜帶的表的結構信息,例如,欄位名稱、數據類型等,創建一個只具有結構的空表x。由於該表x中存在需要加密的數 據,所以在創建表操作中攜帶有對表x的加密配置信息,即需要加密的a列和b列的名稱,以及加密/解密算法。例如a列的名稱為id,b列的名稱為name,具體的sql語句舉例如下:createtableencode_test(idint,namestring)rowformatserde'org.apache.hadoop.hive.serde2.lazy.lazysimpleserde'withserdeproperties('column.encode.columns'='id,name','column.encode.classname'='com.zte.encode.desrewriter')storedastextfile;其中:column.encode.columns指示了加密的列,如果為空,則表示全表加密,上面的示例中需要對2個列進行加密:id和name;column.encode.classname指示了加密的算法(類庫),這裡是des。其中,本發明實施例中採用開放式的插件架構,即hive系統中包括加密器和解密器類庫,因此,可以調用對應於加密/解密算法的加密器/解密器來進行加密/解密,而且替換十分方便。另外,為了方便在數據導入時對需要加密的數據進行加密,需要將對應於表x的加密配置信息存儲在加密信息表中。其中,加密信息表中包括基於表或列或分區或桶進行加密時所採用的加密算法。創建表完畢後,需要向創建的空表中導入數據。例如,需要向表x中的a列導入數據,則數據導入操作中會攜帶有a列的名稱。然後,從加密信息表中讀取與a列對應的加密算法,並採用該加密算法對需要導入的數據進行加密,最後將加密後的數據寫入到表x的a列中。其中,由於hive中的數據對應的數據文件是存放在hdfs上,所以創建表x,就是在hdfs中創建一個對應與表x的空目錄,並將該表x的結構信息(欄位名稱,欄位類型等),也稱作字典信息,存儲在物理資料庫中(如mysql、postgresql等)。其中,對數據倉庫中的已有數據進行加密的過程可通過修改表的方式進行加密,也可通過創建臨時表的方式實現。方式一:採用修改表的方式對數據倉庫中的已有數據進行加密,包括:獲取修改表操作;判斷所述修改表操作中是否攜帶有第二加密配置信息,所述第二加密配置信息包括需要加密的第二目標表的名稱、第二目標列的名稱、第二目標分區的名稱和第二目標桶的名稱中的一種或多種,以及加密/解密算法;若是,利用所述修改表操作中攜帶的加密算法對所述第二目標表、所述第二目標列、所述第二目標分區、所述第二目標桶中的一種或多種中的數據進行加密;將所述第二加密配置信息存儲在所述加密信息表中。即,將加密配置信息作為修改表操作的攜帶信息,當需要對某個表、某個列、某個分區或某個桶的數據進行加密時,可在修改表操作中攜帶某個表、某個列、某個分區或某個桶的名稱(當然,也可以是表、列、分區、桶中多種的組合)以及加密/解密算法。在執行修改表操作時,直接調用與加密算法對應的加密器,對需要加密的表、列、分區或桶進行加密即可。其中,還可以修改加密時採用的加密算法,只需要將相應的表、列、分區或桶的加密算法修改為需要的算法即可,比如將分區ds=』2015』的加密算法改為des,如下:altertablecsetpartition(ds=』2015』)'partition.encode.classname'='com.zte.encode.desrewriter'。其中,需要注意的是,對於修改表操作中攜帶的加密配置信息同樣需要保存在加密信息表中。方式二:創建臨時表方式對數據倉庫中的已有數據進行加密,包括:獲取對已有數據的加密操作,其中,所述對已有數據的加密操作中攜帶有待處理表的名稱以及第三加密配置信息,其中,所述第三加密配置信息包括需要加密的第三目標表的名稱、第三目標列的名稱、第三目標分區的名稱和第三目標桶的名稱中的一種或多種,以及加密/解密算法,其中,所述第三目標表包括所述待處理表中的一個或多個,所述第三目標列包括所述待處理表的一個或多個列,所述第三目標分區包括所述待處理表的一個或多個分區,所述第三目標桶包括所述待處理表的一個或多個桶;創建與所述待處理表具有相同結構的臨時表;獲取數據查詢操作,並依據所述數據查詢操作查詢所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中的數據, 獲得查詢數據;將所述查詢數據對應寫入所述臨時表中;利用所述對已有數據的加密操作中攜帶的加密算法,對寫入所述臨時表中的查詢數據進行加密,獲得第二加密數據;將所述第二加密數據以覆蓋方式對應寫入所述待處理表中;將所述第三加密配置信息存儲在所述加密信息表中;刪除所述臨時表。其中,所述獲取數據查詢操作,並依據所述數據查詢操作查詢所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中的數據,獲得查詢數據,包括:獲取所述數據查詢操作,其中,所述數據查詢操作中攜帶所述第三目標表的名稱、所述第三目標列的名稱、所述第三目標分區的名稱、所述第三目標桶的名稱中的一種或多種;根據所述數據查詢操作,從分布式文件系統中讀取所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中的數據;判斷所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中是否存在已加密數據;若是,從所述加密信息表中獲取與所述已加密數據所在的表、列、分區和桶中的一種或多種相對應的解密算法;利用所述解密算法,對所述已加密數據進行解密,獲得所述查詢數據。例如,需要對表y中m分區、n分區以及h分區中的已有數據進行加密。首先,需要創建一個與表y具有相同結構的臨時表l,即創建一個與表y數據字典相同,但不加密的臨時表l。然後,以數據查詢的方式將分區m、分區n和h分區中的數據從hdfs中讀出。其中,在對表y進行查詢時,需要首先從數據查詢操作中獲取需要查詢的分區m、分區n和分區h的名稱;然後,從hdfs中讀取分區m、分區n和分區h中的數據。其中,可能在讀取的數據中存在有已加密數據,那麼在將讀出的數據寫入到臨時表l中之前,需要對已加密數據進行解密。在進行解密時,需要在加密信息表中查找對應與已加密數據所在的表或列或分區或桶 的解密算法,查找到時,應用對應與該解密算法的解密器對已加密數據進行解密,從而獲得所查詢的數據。當獲得查詢到的m分區、n分區和h分區的數據後,將這些數據對應寫入到臨時表l中。由於臨時表l與表y具有相同的結構,所以臨時表l中存在相同的分區。因此,所查詢的數據實際上對應寫入的臨時表l中的m分區、n分區和h分區中。此時,可採用對已有數據加密操作中攜帶的加密算法對臨時表l中m分區、n分區和h分區中的數據進行加密。加密完畢後,將加密後的m分區、n分區和h分區中的數據以覆蓋方式寫入到表y中的m分區、n分區和h分區中,並將之前創建的臨時表l刪除。其中,為了方便後續用戶對表y中m分區、n分區和h分區中的數據進行某些數據操作,需要將m分區、n分區和h分區中所對應的加密/解密算法存儲在加密信息表中。當對hive系統中的數據採用上述方法進行了加密後,在後續用戶進行數據查詢時,則需要從數據查詢操作中獲取需要查詢的表的名稱、列的名稱、分區的名稱和桶的名稱中的一種或多種;然後,從hdfs中讀取所要查詢的表、列、分區和桶中的一種或多種中的數據;再次,從加密信息表中查找與所讀取的表、列、分區和桶中的一種或多種對應的解密算法,若查找到,則利用查找到的解密算法進行解密,並將解密後的數據返回給用戶;若未查找到,則直接將讀取的數據返回給用戶。另外,在hive系統中,加密信息表在元數據中採用隱藏表的形式進行保護。其中,也可採用對加密信息表進行加密的方式來保護加密信息表中的數據。那麼,在上述方法中,將第一加密配置信息、第二加密配置信息或第三加密配置信息保存在加密信息表中之後,可採用預設加密算法,對加密信息表中的數據進行加密。操作權限表和白名單也屬於元數據的一部分,所以,對操作權限表和白名單進行加密,同樣可以保護操作權限表以及白名單中的數據的安全。其中,部署方法只需要設置hive.metastore.encode.class(元數據加密/解密類)配置參數為指定的加密/解密算法,比如aes加密/解密算法:com.zte.encode.aesrewriter。在元數據表(即加密信息表、操作權限表、 白名單)寫入到物理庫之前,對表欄位的所有內容調用加密算法進行加密,反之,當元數據從物理庫中讀取出來後,則對欄位內容調用解密算法進行解密。在本發明實施例的另外一方面,在某些特殊情況下,如果hive系統超級管理員沒有配置權限控制,此時不能進行用戶的接入控制,用戶之間也不能相互授權,但數據還是同樣可以進行加密保護,此時,在進行加密數據查詢時,只有數據的所有者(表、列、分區或桶數據的所有者)來查詢時,才會進行數據解密展示,非數據的所有者則看不到真實的數據(只能看到加密後的數據)。另外,hive系統的大規模數據處理是在mapreduce任務進行運行時實現的。在mapreduce運行時,中間過程會產生一些臨時數據。因此,在某些情況下,需要對mapreduce的中間過程生成的臨時數據做保護,mapreduce在執行過程中,可能需要將部分數據臨時寫到hdfs或磁碟上,這個數據就稱為中間過程(如map階段)生成的臨時數據,這個數據往往是真實數據的一個小小片段,如果要對這個數據也做保護,可以將加密/解密算法也應用到mapreduce的中間過程,在中間過程的數據往hdfs或磁碟寫入數據時,調用加密算法加密,在中間過程從hdfs或磁碟讀入數據時,調用解密算法解密。其中,只需要設置hive.intermediate.compression.codec(中間數據編碼方式)配置參數為指定的加密/解密算法,比如aes加密/解密算法:com.zte.encode.aesrewriter,即可實現中間生成數據的加密保護。第二實施例依據本發明實施例的另一個方面,還提供了一種數據倉庫中的數據保護裝置,如圖2所示,該裝置20包括:接收模塊21,用於接收用戶輸入的用戶請求,所述用戶請求中攜帶有用戶身份信息和操作請求,其中,所述操作請求包括表級別的操作請求、列級別的操作請求、分區級別的操作請求和桶級別的操作請求中的一種或多種;第一判斷模塊23,用於判斷所述用戶身份信息及所述操作請求是否合法;第二判斷模塊25,用於當所述第一判斷模塊23的判斷結果為是時,判斷所述操作請求的操作類型;加密模塊27,用於當所述第二判斷模塊25判斷所述操作請求為非授權操作時,對數據倉庫的新增數據或已有數據進行加密。可選地,如圖3所示,所述第一判斷模塊23包括:第一判斷單元231,用於根據所述用戶身份信息,判斷所述用戶是否存在於預先存儲的白名單中,若存在,則所述用戶身份信息合法;第二判斷單元232,用於判斷執行所述操作請求的權限是否是所述用戶所具有的預設操作權限,若是,則所述操作請求合法。可選地,所述非授權操作包括:創建表操作、數據導入操作、修改表操作、對已有數據的加密操作、數據查詢操作。可選地,如圖3所示,所述加密模塊27包括:第一獲取單元271,用於獲取創建表操作,並根據所述創建表操作中攜帶的表的結構信息創建表;第三判斷單元272,用於判斷所述創建表操作中是否攜帶有第一加密配置信息,其中,所述第一加密配置信息包括需要加密的表的名稱、列的名稱、分區的名稱和桶的名稱中的一種或多種,以及加密/解密算法;第一存儲單元273,用於當所述第三判斷單元272的判斷結果為是時,將所述第一加密配置信息存儲在加密信息表中;第二獲取單元274,用於獲取數據導入操作,其中,所述數據導入操作中攜帶有需要導入數據的第一目標表的名稱、第一目標列的名稱、第一目標分區的名稱和第一目標桶的名稱中的一種或多種,其中,所述第一目標表包括創建的表中的一個或多個,所述第一目標列包括創建的表的一個或多個列,所述第一目標分區包括創建的表的一個或多個分區,所述第一目標桶包括創建的表的一個或多個桶;第四判斷單元275,用於判斷所述第一目標表、所述第一目標列、所述第一目標分區和所述第一目標桶中的一種或多種在所述加密信息表中是否存儲有對應的加密算法;第三獲取單元276,用於當所述第四判斷單元275的判斷結果為是時,獲取與所述第一目標表、所述第一目標列、所述第一目標分區和所述第一目標桶中的一種或多種對應的加密算法;第一加密單元277,用於獲取所要導入的數據,並利用獲取的加密算法對所要導入的數據進行加密,獲得第一加密數據;第一寫入單元278,用於將所述第一加密數據對應寫入到所述第一目標表、所述第一目標列、所述第一目標分區和所述第一目標桶中的一種或多種中。可選地,如圖3所示,所述加密模塊27還包括:第四獲取單元279,用於獲取修改表操作;第五判斷單元2710,用於判斷所述修改表操作中是否攜帶有第二加密配置信息,所述第二加密配置信息包括需要加密的第二目標表的名稱、第二目標列的名稱、第二目標分區的名稱和第二目標桶的名稱中的一種或多種,以及加密/解密算法;第二加密單元2711,用於在所述第五判斷單元2710的判斷結果為是時,利用所述修改表操作中攜帶的加密算法對所述第二目標表、所述第二目標列、所述第二目標分區、所述第二目標桶中的一種或多種中的數據進行加密;第二存儲單元2712,用於將所述第二加密配置信息存儲在所述加密信息表中。可選地,如圖3所示,所述加密模塊27還包括:第五獲取單元2713,用於獲取對已有數據的加密操作,其中,所述對已有數據的加密操作中攜帶有待處理表的名稱以及第三加密配置信息,其中,所述第三加密配置信息包括需要加密的第三目標表的名稱、第三目標列的名稱、第三目標分區的名稱和第三目標桶的名稱中的一種或多種,以及加密/解密算法,其中,所述第三目標表包括所述待處理表中的一個或多個,所述第三目標列包括所述待處理表的一個或多個列,所述第三目標分區包括所述待處理表的一個或多個分區,所述第三目標桶包括所述待處理表的一個或多個桶;創建單元2714,用於創建與所述待處理表具有相同結構的臨時表;查詢單元2715,用於獲取數據查詢操作,並依據所述數據查詢操作查詢所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中的數據,獲得查詢數據;第二寫入單元2716,用於將所述查詢數據對應寫入所述臨時表中;第三加密單元2717,用於利用所述對已有數據的加密操作中攜帶的加密算法,對寫入所述臨時表中的查詢數據進行加密,獲得第二加密數據;第三寫入單元2718,用於將所述第二加密數據以覆蓋方式對應寫入所述 待處理表中;第三存儲單元2719,用於將所述第三加密配置信息存儲在所述加密信息表中;刪除單元2720,用於刪除所述臨時表。可選地,所述查詢單元2715包括:第一獲取子單元,用於獲取所述數據查詢操作,其中,所述數據查詢操作中攜帶所述第三目標表的名稱、所述第三目標列的名稱、所述第三目標分區的名稱、所述第三目標桶的名稱中的一種或多種;查詢子單元,用於根據所述數據查詢操作,從分布式文件系統中讀取所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中的數據;判斷子單元,用於判斷所述第三目標表、所述第三目標列、所述第三目標分區、所述第三目標桶中的一種或多種中是否存在已加密數據;第二獲取子單元,用於當所述判斷子單元的判斷結果為是時,從所述加密信息表中獲取與所述已加密數據所在的表、列、分區和桶中的一種或多種相對應的解密算法;解密子單元,用於利用所述解密算法,對所述已加密數據進行解密,獲得所述查詢數據。可選地,如圖3所示,還包括:授權模塊29,用於當所述第二判斷模塊判斷所述操作請求為授權操作,判斷所述授權操作中攜帶的所述用戶授權其他用戶進行操作的表、列、分區和桶中的一種或多種是否屬於所述用戶,若是,則執行所述授權操作,否則,取消所述授權操作。可選地,如圖3所示所述加密模塊27還包括:第四加密單元2721,用於採用預設加密算法,對所述加密信息表中的數據進行加密。第三實施例如圖4所示,為本發明另一實施例的數據倉庫中的數據保護裝置的結構框圖。接入控制模塊431:提供白名單功能,被權限控制模塊43調用,只有用戶在白名單之中,才允許接入系統,否則不允許接入。白名單由系統超級管理員根據指定的接口配置,通常以配置表(白名單表)的形式存儲在元數據模塊41,也可以以配置文件存儲在本地硬碟。接入控制模塊431是插件式組件,用戶可以繼承指定的接口,開發自定義的白名單功能。權限控制模塊43:在hive原有權限控制模塊的基礎上,提供hive系統超級管理員功能,調用接入控制模塊431提供的白名單功能進行接入控制,並提供基於列、分區、桶級別的靈活授權,允許hive用戶授權其他用戶訪問某個列、某個分區或某個桶。語句解析模塊44:對sql語句進行解析,本發明的加密信息是在創建表或修改表的sql語句中時定義的,所以在原有hive語句解析模塊的基礎上,增加對加密信息的解析,並將加密信息作為一張表寫入到元數據模塊41中,包括表是否加密,加密的列,分區、桶名稱、加密器名稱。序列化模塊45:提供將數據寫入到hdfs47中的功能。在序列化的過程中,數據長度往往會擴大,為了減少mapreduce網絡傳輸的開銷,所以在數據寫入hdfs47的時候,進行數據加密。反序列化模塊46:提供將從hdfs47上將表文件讀入的功能,由於數據解密長度會減少,同樣為了減少mapreduce網絡傳輸的開銷,所在反序列化的過程中,就進行數據解密。hdfs47:存儲hive中的數據對應的數據文件,其中,hdfs47中的數據可通過反序列化模塊46讀取,通過序列化模塊45將數據寫入hdfs47中。元數據模塊41:定義加密信息表、白名單表和操作權限表,存儲表的加密信息、白名單信息和用戶所具有的預設操作權限。表的加密信息包括表是否加密,加密的列,分區、桶、加密器名稱。為了將對用戶sql程序的影響減到最低,本發明在定義表時,將加密信息作為表數據字典定義信息的一部分,持久化到元數據模塊41中,當有數據操作時,要做任何變動,由序列化模塊45/反序列化模塊46根據加密信息判斷是否需要加密或解密。白名單表則存儲用戶名稱、用戶的接入ip等。數據加密/解密模塊42:一個獨立的插件式組件,只分別被序列化模塊45 和反序列化模塊46調用,提供數據加密/解密算法,實現數據加密/解密功能。本發明實現了高級加密標準(advancedencryptionstandard,aes)加密/解密算法,aes在密碼學中又稱rijndael加密法,是美國聯邦政府採用的一種區塊加密標準。這個標準用來替代原先的des,已經被多方分析且廣為全世界所使用。目前,高級加密標準已然成為對稱密鑰加密中最流行的算法之一。該加密算法具有加密速度快,編碼緊湊,安全性極高的優點。同時,該加密算法生成的加密數據在任何情況下只與原始數據和加密密鑰相關,也就是只要加密的原始數據和密鑰確定,那麼在任何情況下,生成的加密數據都是相同的,反之對於解密也是同樣的,只要獲取到密鑰,就能對加密數據進行解密,這也方便可以將該算法使用到mapreduce這樣的多主機、多節點的運算環境中。同時由於本發明採用一種插件式架構,用戶只要通過繼承本發明定義的接口,也可以開發自定義的加密/解密插件。密鑰配置模塊421:數據加密/解密模塊42的子模塊,專門用於合成加密/解密的密鑰,在加密過程中,hive系統為每個用戶分配一個32位長的用於加密的加密密鑰(key),該分配的key與用戶的自定義key合成用戶的加密密鑰,並通過jdbc接口寫入到元數據模塊41中。基於圖4的結構框圖,當有用戶接入時,圖4所示的各個模塊按照如圖5所示的流程圖執行,即按照步驟s51~s513執行。具體地,步驟s51、用戶請求,即用戶輸入用戶請求。步驟s52、通過元數據模塊41讀取用戶白名單;因為白名單中存儲著具有合法接入權限的用戶的身份信息,所以為了便於對輸入用戶請求的用戶的身份信息進行判斷,需要從元數據模塊41中讀取白名單。步驟s53、判斷該用戶是否在白名單內;即權限控制模塊43調用接入控制模塊431提供的白名單功能,判斷用戶是否在白名單之內,若在,則允許接入,並執行步驟s54,否則不允許接入,進入步驟s513中,即結束流程。因此,只有通過權限控制模塊43認證的用戶才允許接入hive進行後面的操作。步驟s54、權限控制模塊43獲取用戶權限,與操作中要求的權限對比,即權限控制模塊43從元數據模塊41中讀取操作權限控制表。步驟s55、判斷是否是授權操作;若屬於授權操作,執行步驟s56,否則 執行步驟s57。步驟s56、若授權的表、列、分區或桶屬於該用戶,則成功授權,否則失敗返回。步驟s57、判斷用戶是否具備相應操作權限,若具備,執行步驟s58,若不具備,執行步驟s513。步驟s58、判斷用戶的操作請求類別;其中,請求類別包括創建表、修改表、數據導入、數據查詢、對已有數據加密保護。具體地,當操作請求為創建表或修改表時,執行步驟s59,參見圖6的第一分支流程;當操作請求為數據導入時,執行步驟s510,參見圖7的第二分支流程;當操作請求為數據查詢時,執行步驟s511,參見圖8的第三分支流程;當操作請求為對已有數據加密保護時,執行步驟s512,參見圖9的第四分支流程。其中,如圖6所示,當操作請求為創建表或修改表時,執行步驟s591~s595。具體如下:步驟s591、執行創建表或修改表語句(其中,如果需要創建加密的表、列、分區或桶,則要在數據字典中定義加密的表、列、分區或桶)。步驟s592、將表的數據字典信息通過元數據模塊41寫入到物理資料庫中。步驟s593、判斷創建表或修改表的語句中是否攜帶了加密配置信息,若是,執行步驟s594,若否,執行步驟s595。步驟s594、將加密配置信息通過元數據模塊41寫入到物理庫中的加密信息表中。步驟s595、流程結束。其中,如圖7所示,當操作請求為數據導入時,執行步驟s5101~s5107。具體如下:步驟s5101、執行mapreduce流程。步驟s5102、在mapreduce流程的最後,調用序列化模塊45向hdfs47序列化數據。步驟s5103、通過元數據模塊41讀取元數據表信息,包括加密信息。步驟s5104、判斷導入的目標表、列、分區或桶是否加密,若是,執行步驟s5105,若否,執行步驟s5106。步驟s5105、在序列化過程中,調用加密/解密模塊42提供的加密算法進行數據加密。即序列化模塊45調用密鑰配置模塊421合成密鑰,調用元數據模塊41獲取待加密的列、分區或桶及加密/解密算法名,加載指定的加密/解密算法,根據指定的加密數據(待加密的列、分區或桶)和密鑰完成數據加密。步驟s5106、數據寫入hdfs47中,mapreduce結束。步驟s5107、流程結束,即將數據寫入到hdfs47中後,此部分的流程結束。其中,如圖8所示,當操作請求為數據查詢時,執行步驟s5111~s5118。具體如下:步驟s5111、開始執行mapreduce流程。步驟s5112、在mapreduce的開始,調用反序列化模塊46從hdfs47上讀取數據。步驟s5113、通過元數據模塊41讀取元數據信息,包括加密表信息.步驟s5114、判斷查詢的表、列、分區或桶是否有加密,若有加密,執行步驟s5115,若沒有加密,執行步驟s5116。步驟s5115、在反序列化過程中,調用加密/解密模塊42提供的解密算法進行數據解密。步驟s5116、數據讀取完畢後,mapreduce結束。步驟s5117、將查詢數據返回給用戶。步驟s5118、流程結束,即,將查詢數據返回給用戶後,流程結束。其中,如圖9所示,當操作請求為對已有數據加密保護時,執行步驟s5121~s51211。具體如下:步驟s5121、對源表(列、分區或桶)執行查詢。步驟s5122、查詢流程參見圖8,查詢完成後,獲取所要查詢的數據。步驟s5123、創建同源表數據字典相同,但不加密的普通臨時表。步驟s5124、將上面查詢的數據導入到臨時表中。步驟s5125、執行mapreduce。步驟s5126、在mapreduce流程的最後,調用序列化模塊45向hdfs47序列化數據。步驟s5127、判斷源表的某些表、列、分區或桶是否需要加密;若是,執行步驟s5128,否則執行步驟s5129。步驟s5128、在序列化過程中,調用加密/解密模塊42提供的加密算法進行數據加密。步驟s5129、數據寫入hdfs47中,mapreduce流程結束。即,將加密後的數據以覆蓋方式寫入源表中。步驟s51210、刪除普通臨時表,以節省系統的存儲空間。步驟s51211、流程結束,即,刪除普通臨時表後,該部分流程結束。其中,創建臨時表的步驟與對源表的查詢步驟的先後順序並不局限於此。在圖4所示的結構框圖中,由於數據加密/解密模塊42的存在,使得加密/解密算法已經加載到系統中,所以可以延伸處一種簡化實施方式,即直接通過自定義函數(udf)定義加密/解密函數,而無需再進行數據字典的定義,從而可以不需要通過語句解析模塊44解析獲取加密信息,以及將加密信息存儲元資料庫的過程。比如:selecta,encode(b)fromtbl,通過加密算法中的encode接口對表tbl的b欄位內容進行了加密,再將加密後的結果a和encode(b)導入到另一張預先定義的表tbl_encrypt,此表作為數據加密後的存放地,收到查詢請求時,則調用解密函數decode,如:selecta,decode(c)fromtbl_encrypt,c的內容即為encode(b),以此進行數據解密展示,這種方式不需要像在創建表或修改表那樣需要在數據字典中定義,但需要對原始sql進行改造,增加對自定義函數的調用,並且要人為的保證加密的表、列、分區或桶和解密時完全一致。綜上所述,本發明通過用戶權限控制和數據加密來實現的hive數據保護,旨在通過對hive用戶實施接入控制及列、分區或桶級別的權限控制,並結合對用戶數據進行基於表、列、分區或桶級別的加密/解密,實現保護hive數據倉庫中的數據的目的,從而克服了現有技術中存在的安全機制不健全、操作繁瑣、耗時,無法對表、列、分區及桶進行靈活加密、保密程度不高、效率低下及部署成本較高的問題。以上所述的是本發明的優選實施方式,應當指出對於本
技術領域:
:的普通人員來說,在不脫離本發明所述的原理前提下還可以作出若干改進和潤飾,這些改進和潤飾也在本發明的保護範圍內。當前第1頁12當前第1頁12

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀