日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

明文和密文的轉換

使用全密態數據庫集群時,支持修改列類型(明文類型修改為密文類型,密文類型修改為明文類型)。

前提條件

語法

ALTER TABLE <table_name> 
    ALTER COLUMN <column_name> [SET DATA] TYPE <目標類型> 
    USING <類型轉換函數>(<column_name>[, <keyname>]);
說明
  • 密文轉換明文時,只需配置column_name參數。

  • 明文轉換密文時,可僅配置column_name參數,或可同時配置column_namekeyname

表 1. 類型轉換函數說明

明文類型

密文類型

明文到密文轉換函數

密文到明文轉換函數

int4

enc_int4

encdb.enc_int4_encrypt

encdb.decrypt

int8

enc_int8

encdb.enc_int8_encrypt

encdb.decrypt

float4

enc_float4

encdb.enc_float4_encrypt

encdb.decrypt

float8

enc_float8

encdb.enc_float8_encrypt

encdb.decrypt

numeric

enc_decimal

encdb.enc_decimal_encrypt

encdb.decrypt

text

enc_text

encdb.enc_text_encrypt

encdb.decrypt

timestamp

enc_timestamp

encdb.enc_timestamp_encrypt

encdb.decrypt

使用示例

  • 使用構建的keyname對應的密鑰將明文列修改為密文列。

    1. 構建keyname。

      SELECT encdb.keyname_generate(<user_name>, <database_name>, <schema_name>, <table_name>, <column_name>);
    2. 為keyname生成密鑰。

      SELECT encdb.dek_generate(<keyname>[, <json_params>]);

      encdb.dek_generate中的參數json_params可選,使用標準JSON格式,可配置的鍵值對范圍如下:

      說明

      algorithm

      加密算法。

      默認值:AES_128_GCM。

      policy

      DEFAULT

      加密策略,預留參數,當前固定配置為DEFAULT。

      flags

      • RND

      • DET

      加密方案。

      • RND:隨機加密。

      • DET:確定性加密。

      默認值:RND。

      mekid

      目標用戶的MEK ID。

      用于生成DEK的用戶主密鑰ID。

      默認為當前連接用戶的主密鑰ID。

    3. 使用keyname對應的密鑰,將明文列(例如int4)修改為對應類型的密文列(例如enc_int4)。

      ALTER TABLE <table_name> ALTER COLUMN <column_name> SET DATA TYPE enc_int4 USING encdb.enc_int4_encrypt(<column_name>, <keyname>);
  • 使用當前數據庫默認密鑰將明文列修改為密文列。

    說明

    當前數據庫默認密鑰的keyname為|<user>|<database>|

    ALTER TABLE <table_name> ALTER COLUMN <column_name> SET DATA TYPE enc_int4 USING encdb.enc_int4_encrypt(<column_name>);
  • 將密文列修改為明文列。

    ALTER TABLE <table_name> ALTER COLUMN <column_name> SET DATA TYPE int4 USING encdb.decrypt(<column_name>);