国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

openGauss學習筆記-55 openGauss 高級特性-全密態(tài)數(shù)據(jù)庫

這篇具有很好參考價值的文章主要介紹了openGauss學習筆記-55 openGauss 高級特性-全密態(tài)數(shù)據(jù)庫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

openGauss學習筆記-55 openGauss 高級特性-全密態(tài)數(shù)據(jù)庫

全密態(tài)數(shù)據(jù)庫意在解決數(shù)據(jù)全生命周期的隱私保護問題,使得系統(tǒng)無論在何種業(yè)務場景和環(huán)境下,數(shù)據(jù)在傳輸、運算以及存儲的各個環(huán)節(jié)始終都處于密文狀態(tài)。當數(shù)據(jù)擁有者在客戶端完成數(shù)據(jù)加密并發(fā)送給服務端后,在攻擊者借助系統(tǒng)脆弱點竊取用戶數(shù)據(jù)的狀態(tài)下仍然無法獲得有效的價值信息,從而起到保護數(shù)據(jù)隱私的能力。

由于整個業(yè)務數(shù)據(jù)流在數(shù)據(jù)處理過程中都是以密文形態(tài)存在,通過全密態(tài)數(shù)據(jù)庫,可以實現(xiàn):

  • 保護數(shù)據(jù)在云上全生命周期的隱私安全。無論數(shù)據(jù)處于何種狀態(tài),攻擊者都無法從數(shù)據(jù)庫服務端獲取有效信息。
  • 幫助云服務提供商獲取第三方信任。無論是企業(yè)服務場景下的業(yè)務管理員、運維管理員,還是消費者云業(yè)務下的應用開發(fā)者,用戶通過將密鑰掌握在自己手上,使得高權限用戶無法獲取數(shù)據(jù)有效信息。
  • 讓云數(shù)據(jù)庫服務借助全密態(tài)能力更好的遵守個人隱私保護方面的法律法規(guī)。

全密態(tài)數(shù)據(jù)庫目前支持兩種連接方式:gsql連接和jdbc連接。下面將詳細介紹兩種連接方式下數(shù)據(jù)庫的使用流程。

55.1 連接全密態(tài)數(shù)據(jù)庫

  • GSQL連接數(shù)據(jù)庫執(zhí)行以下命令打開密態(tài)開關:

    gsql -p PORT -d postgres -r -C
    

    參數(shù)說明:

    • -p:端口號
    • -d:數(shù)據(jù)庫名稱
    • -C:是打開密態(tài)開關。
  • JDBC支持密態(tài)數(shù)據(jù)庫相關操作,需要設置enable_ce=1

55.2 創(chuàng)建用戶密鑰

全密態(tài)數(shù)據(jù)庫有兩種密鑰,即客戶端主密鑰CMK和數(shù)據(jù)加密密鑰CEK。CMK用于加密CEK,CEK用于加密用戶數(shù)據(jù)。

密鑰創(chuàng)建的順序和依賴依次為: 創(chuàng)建CMK > 創(chuàng)建CEK。

  • GSQL環(huán)境下創(chuàng)建CMK和CEK:

    【創(chuàng)建CMK】

    CREATE CLIENT MASTER KEY client_master_key_name WITH (KEY_STORE =key_store_name, KEY_PATH = "key_path_value", ALGORITHM = algorithm_type);
    

    參數(shù)說明:

    • client_master_key_name

      該參數(shù)作為密鑰對象名,在同一命名空間下,需滿足命名唯一性約束。

      取值范圍:字符串,需符合標識符的命名規(guī)范。

    • KEY_STORE

      指定管理CMK的密鑰工具或組件;取值:目前僅支持localkms。

    • KEY_PATH

      KEY_STORE負責管理多個CMK密鑰,KEY_PATH選項用于在KEY_STORE中唯一標識CMK。取值類似:“key_path_value”。

    • ALGORITHM

      由本語法創(chuàng)建的用于加密COLUMN ENCRYPTION KEY,該參數(shù)用于指定加密算法的類型。取值范圍:RSA_2048、RSA3072和SM2。

    openGauss學習筆記-55 openGauss 高級特性-全密態(tài)數(shù)據(jù)庫,openGauss學習筆記,openGauss,數(shù)據(jù)庫,開源數(shù)據(jù)庫,開源軟件,sql說明: 密鑰存儲路徑:默認情況下,localkms將在 L O C A L K M S F I L E P A T H 路徑下生成 / 讀取 / 刪除密鑰文件,用戶可手動配置該環(huán)境變量。但是,用戶也可以不用單獨配置該環(huán)境變量,在嘗試獲取 LOCALKMS_FILE_PATH路徑下生成/讀取/刪除密鑰文件,用戶可手動配置該環(huán)境變量。但是,用戶也可以不用單獨配置該環(huán)境變量,在嘗試獲取 LOCALKMSF?ILEP?ATH路徑下生成/讀取/刪除密鑰文件,用戶可手動配置該環(huán)境變量。但是,用戶也可以不用單獨配置該環(huán)境變量,在嘗試獲取LOCALKMS_FILE_PATH失敗時,localkms會嘗試獲取$GAUSSHOME/etc/localkms/路徑,如果該路徑存在,則將其作為密鑰存儲路徑。 密鑰相關文件名:使用CREATE CMK語法時,localkms將會創(chuàng)建四個與存儲密鑰相關的文件。示例:當KEY_PATH = “key_path_value”, 四個文件的名稱分別為key_path_value.pub、key_path_value.pub.rand、 key_path_value.priv、 key_path_value.priv.rand。 所以,為了能夠成功創(chuàng)建密鑰相關文件,在密鑰存儲路徑下,應該保證沒有已存在的與密鑰相關文件名同名的文件。

    【創(chuàng)建CEK】

    CREATE COLUMN ENCRYPTION KEY column_encryption_key_name WITH(CLIENT_MASTER_KEY = client_master_key_name, ALGORITHM = algorithm_type, ENCRYPTED_VALUE = encrypted_value);
    

    參數(shù)說明:

    • column_encryption_key_name

      該參數(shù)作為密鑰對象名,在同一命名空間下,需滿足命名唯一性約束。

      取值范圍:字符串,要符合標識符的命名規(guī)范。

    • CLIENT_MASTER_KEY

      指定用于加密本CEK的CMK。

      取值為:CMK對象名,該CMK對象由CREATE CLIENT MASTER KEY語法創(chuàng)建。

    • ALGORITHM

      指定該CEK將用于何種加密算法。

      取值范圍為:AEAD_AES_256_CBC_HMAC_SHA256、AEAD_AES_128_CBC_HMAC_SHA256和SM4_SM3;

    • ENCRYPTED_VALUE(可選項)

      該值為用戶指定的密鑰口令,密鑰口令長度范圍為28 ~ 256個字符。28個字符派生出來的密鑰安全強度滿足AES128。若用戶需要用AES256,密鑰口令的長度需要39個字符。如果不指定,則會自動生成256比特的密鑰。

    openGauss學習筆記-55 openGauss 高級特性-全密態(tài)數(shù)據(jù)庫,openGauss學習筆記,openGauss,數(shù)據(jù)庫,開源數(shù)據(jù)庫,開源軟件,sql說明: 由于SM2、SM3、SM4等算法屬于中國國家密碼標準算法,為規(guī)避法律風險,需配套使用。如果創(chuàng)建CMK時指定SM4算法來加密CEK,則創(chuàng)建CEK時必須指定SM4_SM3算法來加密數(shù)據(jù)。

    【示例:GSQL環(huán)境下:】

    -- 創(chuàng)建$GAUSSHOME/etc/localkms/路徑
    mkdir -p $GAUSSHOME/etc/localkms/
    -- 使用特權賬戶,創(chuàng)建一個普通用戶alice。
     openGauss=# CREATE USER alice PASSWORD '********'; 
    -- 使用普通用戶alice的賬戶,連接密態(tài)數(shù)據(jù)庫,并執(zhí)行本語法。
     gsql -p 57101 postgres -U alice -r -C 
    -- 創(chuàng)建客戶端加密主密鑰(CMK)對象。
     openGauss=> CREATE CLIENT MASTER KEY alice_cmk WITH (KEY_STORE = localkms , KEY_PATH = "key_path_value”, ALGORITHM = RSA_2048); 
    -- 創(chuàng)建客戶端列加密密鑰(CEK)對象。
     openGauss=> CREATE COLUMN ENCRYPTION KEY ImgCEK WITH VALUES (CLIENT_MASTER_KEY = alice_cmk, ALGORITHM  = AEAD_AES_256_CBC_HMAC_SHA256); 
    
  • JDBC環(huán)境下創(chuàng)建CMK和CEK:

    // 創(chuàng)建客戶端主密鑰
     Connection conn = DriverManager.getConnection("url","user","password");Statement stmt = conn.createStatement();int rc = stmt.executeUpdate("CREATE CLIENT MASTER KEY ImgCMK1 WITH ( KEY_STORE = localkms , KEY_PATH = "key_path_value" , ALGORITHM = AES_256_CBC);"); 
    
     // 創(chuàng)建列加密密鑰
     int rc2 = stmt.executeUpdate("CREATE COLUMN ENCRYPTION KEY ImgCEK1 WITH VALUES (CLIENT_MASTER_KEY = ImgCMK1, ALGORITHM  = AEAD_AES_256_CBC_HMAC_SHA256);");
    

55.3 創(chuàng)建加密表

在創(chuàng)建了客戶端主密鑰CMK和數(shù)據(jù)加密密鑰CEK之后,就可以使用CEK創(chuàng)建加密表了。加密表的創(chuàng)建支持對加密列進行隨機加密和確定性加密兩種方式。

  • GSQL連接環(huán)境下創(chuàng)建加密表:

    【示例】

    openGauss=# CREATE TABLE creditcard_info (id_number int, name text encrypted with (column_encryption_key = ImgCEK, encryption_type = DETERMINISTIC),credit_card  varchar(19) encrypted with (column_encryption_key = ImgCEK, encryption_type = DETERMINISTIC));
    

    參數(shù)說明

    ENCRYPTION_TYPE為ENCRYPTED WITH約束中的加密類型,encryption_type_value的值為[ DETERMINISTIC | RANDOMIZED ]。

  • JDBC環(huán)境下創(chuàng)建加密表:

    int rc3 = stmt.executeUpdate("CREATE TABLE creditcard_info (id_number    int, name  varchar(50) encrypted with (column_encryption_key = ImgCEK, encryption_type = DETERMINISTIC),credit_card  varchar(19) encrypted with (column_encryption_key = ImgCEK1, encryption_type = DETERMINISTIC));");
    

55.4 向加密表插入數(shù)據(jù)并進行查詢

創(chuàng)建了加密表以后,可以在密態(tài)數(shù)據(jù)庫模式下(連接參數(shù)-C)向加密表中插入數(shù)據(jù)、查看數(shù)據(jù)。當使用普通環(huán)境(關掉連接參數(shù)-C)時,是無法對加密表進行操作的,查看加密表時也只能看到密文數(shù)據(jù)。

  • GSQL環(huán)境下向加密表插入數(shù)據(jù)并查看:

    openGauss=# INSERT INTO creditcard_info VALUES (1,'joe','6217986500001288393'); 
     INSERT 0 1 
     openGauss=# INSERT INTO creditcard_info VALUES (2, 'joy','6219985678349800033'); 
     INSERT 0 1 
     openGauss=# select * from creditcard_info where name = 'joe'; 
      id_number | name |     credit_card 
     -----------+------+--------------------- 
              1 | joe  | 6217986500001288393 
     (1 row)
    

    openGauss學習筆記-55 openGauss 高級特性-全密態(tài)數(shù)據(jù)庫,openGauss學習筆記,openGauss,數(shù)據(jù)庫,開源數(shù)據(jù)庫,開源軟件,sql說明: 使用非密態(tài)客戶端查看該加密表數(shù)據(jù)時是密文。

    openGauss=# select id_number,name from creditcard_info; 
      id_number |                name 
     -----------+------------------------------------------- 
              1 | \x011aefabd754ded0a536a96664790622487c4d36 
              2 | \x011aefabd76853108eb406c0f90e7c773b71648f 
     (2 rows)
    
  • JDBC環(huán)境下向加密表插入數(shù)據(jù)并查看:

    // 插入數(shù)據(jù)
     int rc4 = stmt.executeUpdate("INSERT INTO creditcard_info VALUES (1,'joe','6217986500001288393');"); 
     // 查詢加密表
     ResultSet rs = null; 
     rs = stmt.executeQuery("select * from creditcard_info where name = 'joe';"); 
     // 關閉語句對象
     stmt.close();
    

上述我們列出的是全密態(tài)數(shù)據(jù)庫特性的基本使用方法,更全面的使用介紹,可以參考官方文檔中的對應章節(jié)。

?? 點贊,你的認可是我創(chuàng)作的動力!

?? 收藏,你的青睞是我努力的方向!

?? 評論,你的意見是我進步的財富!

openGauss學習筆記-55 openGauss 高級特性-全密態(tài)數(shù)據(jù)庫,openGauss學習筆記,openGauss,數(shù)據(jù)庫,開源數(shù)據(jù)庫,開源軟件,sql文章來源地址http://www.zghlxwxcb.cn/news/detail-691695.html

到了這里,關于openGauss學習筆記-55 openGauss 高級特性-全密態(tài)數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • openGauss學習筆記-33 openGauss 高級數(shù)據(jù)管理-視圖

    openGauss學習筆記-33 openGauss 高級數(shù)據(jù)管理-視圖

    視圖與基本表不同,是一個虛擬的表。數(shù)據(jù)庫中僅存放視圖的定義,而不存放視圖對應的數(shù)據(jù),這些數(shù)據(jù)仍存放在原來的基本表中。若基本表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)也隨之改變。從這個意義上講,視圖就像一個窗口,透過它可以看到數(shù)據(jù)庫中用戶感興趣的

    2024年02月14日
    瀏覽(21)
  • openGauss學習筆記-34 openGauss 高級數(shù)據(jù)管理-SCHEMA

    openGauss學習筆記-34 openGauss 高級數(shù)據(jù)管理-SCHEMA

    SCHEMA又稱作模式。通過管理SCHEMA,允許多個用戶使用同一數(shù)據(jù)庫而不相互干擾,可以將數(shù)據(jù)庫對象組織成易于管理的邏輯組,同時便于將第三方應用添加到相應的SCHEMA下而不引起沖突。 每個數(shù)據(jù)庫包含一個或多個SCHEMA。數(shù)據(jù)庫中的每個SCHEMA包含表和其他類型的對象。數(shù)據(jù)庫創(chuàng)

    2024年02月13日
    瀏覽(52)
  • openGauss學習筆記-45 openGauss 高級數(shù)據(jù)管理-物化視圖

    openGauss學習筆記-45 openGauss 高級數(shù)據(jù)管理-物化視圖

    物化視圖是相對普通視圖而言的。普通視圖是虛擬表,而物化視圖實際上就是存儲SQL執(zhí)行語句的結果,可以直接使用數(shù)據(jù)而不用重復執(zhí)行查詢語句,從而提升性能。 按照刷新方式物化視圖分為兩種: 全量物化視圖 :僅支持對已創(chuàng)建的物化視圖進行全量更新,而不支持進行增

    2024年02月11日
    瀏覽(49)
  • openGauss學習筆記-28 openGauss 高級數(shù)據(jù)管理-NULL值

    openGauss學習筆記-28 openGauss 高級數(shù)據(jù)管理-NULL值

    NULL值代表未知數(shù)據(jù)。無法比較NULL和0,因為它們是不等價的。 創(chuàng)建表時,可以指定列可以存放或者不能存放NULL值,詳情請參見 NOT NULL約束 。本節(jié)介紹IS NULL和IS NOT NULL操作符。 創(chuàng)建表customer_t1,數(shù)據(jù)如下: 28.1 IS NOT NULL 在WHERE子句中查找為NULL值的字段。 例如,列出表customer

    2024年02月14日
    瀏覽(18)
  • openGauss學習筆記-35 openGauss 高級數(shù)據(jù)管理-ALTER TABLE語句

    openGauss學習筆記-35 openGauss 高級數(shù)據(jù)管理-ALTER TABLE語句

    修改表,包括修改表的定義、重命名表、重命名表中指定的列、重命名表的約束、設置表的所屬模式、添加/更新多個列、打開/關閉行訪問控制開關。 35.1 語法格式 在一張已經存在的表上添加列。 在一張已經存在的表上刪除列。 修改表的字段類型。 為一張已經存在表的列增

    2024年02月13日
    瀏覽(54)
  • openGauss學習筆記-60 openGauss 數(shù)據(jù)庫管理-邏輯存儲結構

    openGauss學習筆記-60 openGauss 數(shù)據(jù)庫管理-邏輯存儲結構

    openGauss的數(shù)據(jù)庫節(jié)點負責存儲數(shù)據(jù),其存儲介質也是磁盤,本節(jié)主要從邏輯視角介紹數(shù)據(jù)庫節(jié)點都有哪些對象,以及這些對象之間的關系。數(shù)據(jù)庫邏輯結構如 圖1 。 圖 1 數(shù)據(jù)庫邏輯結構圖 說明: Tablespace,即表空間,是一個目錄,可以存在多個,里面存儲的是它所包含的數(shù)據(jù)

    2024年02月09日
    瀏覽(25)
  • openGauss學習筆記-09 openGauss 簡單數(shù)據(jù)管理-創(chuàng)建數(shù)據(jù)庫

    openGauss學習筆記-09 openGauss 簡單數(shù)據(jù)管理-創(chuàng)建數(shù)據(jù)庫

    數(shù)據(jù)庫安裝完成后,默認生成名稱為postgres的數(shù)據(jù)庫。您需要自己創(chuàng)建一個新的數(shù)據(jù)庫。 9.1 語法格式 創(chuàng)建數(shù)據(jù)庫 查看數(shù)據(jù)庫 使用“l(fā)”用于查看已經存在的數(shù)據(jù)庫。 使用 “c + 數(shù)據(jù)庫名” 進入已存在數(shù)據(jù)庫。 修改數(shù)據(jù)庫 刪除數(shù)據(jù)庫 9.2 參數(shù)說明 database_name 要創(chuàng)建、修改或

    2024年02月16日
    瀏覽(25)
  • openGauss學習筆記-184 openGauss 數(shù)據(jù)庫運維-升級-升級驗證

    openGauss學習筆記-184 openGauss 數(shù)據(jù)庫運維-升級-升級驗證

    本章介紹升級完成后的驗證操作。給出驗證的用例和詳細操作步驟。 184.1 驗證項目的檢查表 表 1 驗證項目的檢查表 序號 驗證項目 檢查標準 檢查結果 1 版本查詢 查詢升級后版本是否正確 - 2 健康檢查 使用gs_checkos工具完成操作系統(tǒng)狀態(tài)檢查。 - 3 數(shù)據(jù)庫狀態(tài) 使用gs_om工具完成

    2024年02月03日
    瀏覽(23)
  • openGauss學習筆記-74 openGauss 數(shù)據(jù)庫管理-創(chuàng)建和管理視圖

    openGauss學習筆記-74 openGauss 數(shù)據(jù)庫管理-創(chuàng)建和管理視圖

    74.1 背景信息 當用戶對數(shù)據(jù)庫中的一張或者多張表的某些字段的組合感興趣,而又不想每次鍵入這些查詢時,用戶就可以定義一個視圖,以便解決這個問題。 視圖與基本表不同,不是物理上實際存在的,是一個虛表。數(shù)據(jù)庫中僅存放視圖的定義,而不存放視圖對應的數(shù)據(jù),這

    2024年02月07日
    瀏覽(50)
  • openGauss學習筆記-108 openGauss 數(shù)據(jù)庫管理-管理用戶及權限-用戶

    openGauss學習筆記-108 openGauss 數(shù)據(jù)庫管理-管理用戶及權限-用戶

    使用CREATE USER和ALTER USER可以創(chuàng)建和管理數(shù)據(jù)庫用戶。openGauss包含一個或多個已命名數(shù)據(jù)庫。用戶和角色在整個openGauss范圍內是共享的,但是其數(shù)據(jù)并不共享。即用戶可以連接任何數(shù)據(jù)庫,但當連接成功后,任何用戶都只能訪問連接請求里聲明的那個數(shù)據(jù)庫。 非 三權分立 下,

    2024年02月08日
    瀏覽(61)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包