全部產品
Search
文件中心

Data Security Center:設定資料庫的列加密

更新時間:Oct 12, 2025

Data Security Center (DSC)支援對RDS MySQL、RDS PostgreSQL、PolarDB MySQL、PolarDB PostgreSQL、PolarDB PostgreSQL(相容Oracle)、PolarDB-X 2.0等資料庫類型的資料列進行加密配置,確保資料庫中敏感列資料加密後儲存,並支援授權使用者通過全密態用戶端解密後訪問加密列的明文資料。

重要
  • 列加密功能僅適用於資料資訊安全中心的免費版進階版企業版、7天試用版以及僅採購增值服務版的使用者。

  • 使用用戶端通過SQL查詢加密欄位時,不考慮原欄位資料類型,返回的資料均會以字串形式呈現,請謹慎配置列加密。

前提條件

  • 購買資料資訊安全中心,且購買足夠的列加密授權配額。如果您未開通列加密功能或列加密授權配額不足,您可以進行版本升級

  • 確保執行個體所在地區支援列加密功能。詳細資料,請參見支援的地區

資料庫加密限制

支援的資料庫類型

支援的版本

支援的密碼編譯演算法

支援的加密方式

支援的許可權

RDS MySQL版

大版本為MySQL 5.7或MySQL 8.0,且核心小版本大於或等於20240731。

  • AES_128_GCM。

  • AES_256_GCM:核心小版本大於或等於20241231時才支援。

  • SM4_128_GCM:核心小版本大於或等於20241231時才支援。

說明

中國內地以外的地區僅支援AES_128_GCM。

  • 本地密鑰。

  • KMS密鑰:核心小版本大於或等於20241231,並且儲存類型為雲端硬碟時才支援。

  • 密文許可權(無解密許可權):僅使用本地密鑰支援,為預設許可權。

  • 密文許可權(JDBC解密):使用KMS密鑰時為預設許可權。

  • 明文許可權。

RDS PostgreSQL版

大版本為PostgreSQL 16,且核心小版本必須大於或等於20241230。

AES_256_GCM。

本地密鑰。

  • 密文許可權(JDBC解密)(預設許可權)。

  • 明文許可權。

PolarDB MySQL版

大版本為MySQL 5.7或MySQL 8.0,且資料庫代理版本必須大於或等於2.8.36。

重要

如果設定PolarDB MySQL資料庫的列加密策略,必須使用資料庫Proxy 位址(可讀可寫入模式)串連資料庫。如果使用主地址,會導致列加密策略不生效。具體操作,請參見設定資料庫代理管理串連地址

AES_128_GCM。

本地密鑰。

PolarDB PostgreSQL版

大版本為PostgreSQL 14,且資料庫版本大於等於2.0.14.15.31.0

AES_256_GCM。

本地密鑰。

PolarDB PostgreSQL版(相容Oracle)

僅支援Oracle文法相容 2.0版本,大版本為PostgreSQL 14,且資料庫版本大於等於2.0.14.15.31.0

AES-256-GCM。

本地密鑰。

PolarDB-X 2.0

資料庫版本大於等於polardb-2.5.0_5.4.20-20250714_xcluster8.4.20-20250703。

  • AES-128-GCM。

  • SM4-128-GCM。

本地密鑰。

操作步驟

開通DSC執行個體後,首次登入控制台使用資料庫列加密功能時,需依次完成以下步驟:授權DSC訪問雲資源資料庫資產同步、執行敏感性資料識別任務開啟列加密功能。

步驟一:授權DSC訪問雲資源

完成授權後,DSC執行個體才能訪問OSS、RDS、MaxCompute等雲端服務的資源。

  1. 登入資料資訊安全中心控制台

  2. RAM授權對話方塊中,單擊立即授權

步驟二:資料庫資產同步

在使用DSC檢測雲產品(包括RDS、PolarDB等)中存在的敏感性資料或審計資料庫活動前,您需要先完成資產同步。

  1. 在左側導覽列,選擇资产中心

  2. 资产中心頁面,單擊資產同步

    說明

    購買DSC執行個體後,首次登入控制台將自動執行雲上資產列表同步任務,無需手動操作。DSC會每日零點自動掃描並同步資產列表。

步驟三:開啟分類分級

為實現列加密功能,您需要先授權資料庫連接,並完成資料識別任務。支援一鍵連接關聯賬號

說明

您可以根據下表中對應的資料庫支援的串連方式和資料安全需要選擇合適的串連方式。

  • 如果您的資料庫類型支援一鍵串連,且您沒有將當前資料庫作為脫敏任務目標資料庫的需求,建議您使用一鍵串連方式。

  • 如果需將資料庫作為脫敏任務的目標庫,您必須要選擇賬密串連方式,並使用具有讀寫權限的帳號串連資料庫。

一鍵連結和賬密連結支援的資料資產類型

連線類型

說明

支援的資料資產類型

一鍵串連

通過控制台按鈕一鍵串連資料庫。

在串連過程中,DSC會自動在目標資料資產中建立一個以sddp_auto開頭的唯讀帳號,通過該帳號串連目標資料庫進行資料識別任務。由於該帳號僅具有隻讀許可權,一鍵授權的資料庫無法成為脫敏任務的目標資料庫。

  • RDS:

    • MySQL

    • SQL Server(唯讀執行個體不支援)

    • MariaDB(唯讀執行個體不支援)

  • PolarDB:

    • MySQL

  • PolarDB-X 1.0(DRDS)

  • PolarDB-X 2.0(唯讀執行個體不支援)

  • OSS

  • TableStore

  • MacCompute

  • SLS

賬密串連

通過手工輸入資料庫的帳號、密碼串連資料庫。

  • 通過唯讀帳號進行資料庫連接後,該資料庫可正常進行敏感性資料識別、脫敏及審計任務,但無法作為脫敏任務的目標資料庫;

  • 通過支援讀寫的帳號進行資料庫連接後,該資料庫可作為脫敏任務的目標資料庫來儲存脫敏後的資料。

  • 結構化資料:

    RDS、PolarDB、PolarDB-X(原DRDS)、PolarDB-X 2.0、MongoDB、OceanBase、自建資料庫

  • 巨量資料:

    AnalyticDB-MySQL、AnalyticDB for PostgreSQL(即AnalyticDB-PG)

  1. 在左側導覽列,選擇资产中心

  2. 在左側結構化資料地區,單擊需要配置列加密的資料類型。

  3. 單擊目標資產執行個體分類分級列的image

    說明

    請確保資料庫執行個體已建立資料庫,且实例状态運行中。若未建立資料庫,則無法啟用分類分級功能,也無法建立相應的識別任務。

    image

  4. 开启分类分级對話方塊中,按照如下內容進行配置。

    配置項

    說明

    开启方式

    配置您串連資料庫進行資料檢測的帳號資訊。支援兩種配置方式:

    • 自动创建数据库账号DSC會自動在目標資料資產中建立一個以sddp_auto開頭的唯讀帳號,通過該帳號串連目標資料庫進行資料識別任務。

      說明

      僅對支援一鍵開啟功能的資料類型,可以選擇此方式。

    • 手动输入账号密码:配置您串連資料庫的帳號密碼。

    授权范围

    授權進行資料檢測的範圍。

    • 整个数据源

    • 在数据源列表管理授权范围:選擇授權範圍。

    自动创建系统默认任务开始扫描

    選中後DSC會在資料庫連接成功自動後建立預設掃描任務。

    您可以在分類分級 > 任務管理 > 識別任務頁簽中,單擊系統默認任務,查看掃描任務執行情況。具體操作,請參見通過識別任務掃描敏感性資料

    实例下新增数据库,自动连接

    選中後當DSC進行手動或自動資產同步後,檢測到您的資料庫執行個體中存在新增資料庫,會自動連接。

  5. 配置完成後,單擊確定

步驟四:查看待加密資料庫資訊

資料識別任務掃描完成後,查看已成功接入DSC的資料庫執行個體資訊,包括總列數列加密情況資料庫帳號資訊等。

  1. 在左側導覽列,選擇風險治理 > 列加密

  2. 列加密頁面查看以下資訊。您可通過資料庫列表上方的搜尋組件,例如資產類型、加密狀態(已加密列、未加密列或加密失敗)、敏感等級等搜尋並查看目標資料庫執行個體資訊。

    敏感等級說明

    敏感等級

    說明

    N/A

    未識別到當前識別模板內包含的敏感資訊。

    S1

    不敏感性資料,公開該類資料在絕大多數情況下不會造成危害。如省份、城市、商品名稱等。

    S2

    一般敏感性資料,不適合公開該資料,資料泄露的危害程度較低。如姓名、地址等。

    S3

    關鍵敏感性資料, 資料敏感程度較高,少量泄漏即會帶來嚴重危害。如各類身份證件、帳號密碼、資料庫資訊等。

    S4

    核心機密資料,任何情況下不應泄漏。如基因、指紋、虹膜等。

    image

    頁面資訊

    說明

    總列數

    已成功接入DSC的資料庫執行個體自主資料庫表中的總列數。

    敏感数据(S3及以上)

    資料識別結果中敏感等級為S3及以上的列。其中包含敏感列,已加密列,未加密列,加密失敗等資訊。

    账号数据

    • 总账号数:每個資料庫的每個帳號計為一個資料庫帳號,例如:A資料庫和B資料庫均有帳號C,則資料庫帳號數計為兩個。

    • 未配置加密:資料庫中所有列都未開啟加密時,帳號許可權為未配置加密

    • 明文权限密文权限數:開啟資料庫的列加密時,可設定資料庫帳號訪問加密列資料的許可權。

    您可以單擊以上統計項的任一數字或單擊权限设置,在账号权限设置面板,搜尋並查看目標資料庫執行個體下的所有帳號資訊,以確認為不同資料庫帳號設定不同存取權限。

    列表資訊

    展示DSC實例名稱資產類型地域加密算法明文权限账号加密检查等資訊。

    • 僅支援對加密檢查通过的執行個體配置列加密。

    • 加密检查結果為“未通過”。如果資料庫版本不相容,請先單擊加密检查列的前往升级,跳轉到RDS或PolarDB控制台對應的升級頁面,升級資料庫版本。具體操作請參見檢查失敗常見問題

    完成版本升級或狀態更新後,您需要在DSC控制台完成資產同步操作,同步資料庫最新資訊。

    1. 在左側導覽列,選擇资产中心,然後在資產管理頁簽,單擊資產授權管理

    2. 資產授權管理面板左側產品名稱導覽列,單擊目標執行個體類型(RDSPolarDB),然後單擊資產同步

步驟五:配置列加密

確認目標資料庫執行個體資訊且加密检查顯示通过後,完成列加密配置。

開啟一鍵加密

未開啟資料庫的一鍵加密前,資料庫的密碼編譯演算法和加密方式未配置,此時不支援對資料庫的單列開啟加密。

  1. DSC支援三種方式開啟列加密。

    • 單擊資料庫執行個體列表上方的一键加密,為所有未加密列配置列加密。

    • 單擊目標資料庫執行個體對應操作列的一键加密,為目標資料庫執行個體配置列加密。

      image

    • 资产中心頁面,單擊目標資料庫執行個體列加密列的image

      image

  2. 加密配置面板,選擇待加密的資產類型實例名稱加密算法加密方式明文权限账号以及選擇需要配置列加密的目標,然後單擊確定

    image

    您需注意以下參數配置:

    • 加密方式

      如果加密方式KMS密钥,需提前在Key Management Service建立對稱金鑰

      image

      重要

      完成列加密配置後,如果修改加密方式,DSC系統會重啟加密任務,重啟過程中原加密列資料將以明文形式儲存存在資料暴露的安全風險。建議您選擇確定的加密方式,以免修改時影響資料安全性

    • 明文权限账号

      完成加密配置後,對應資料庫下所有帳號都預設設定為密文許可權

      • PolarDB MySQL、PolarDB PostgreSQL、PolarDB PostgreSQL(相容Oracle)、RDS PostgreSQL和PolarDB-X 2.0資料庫帳號預設為密文权限(JDBC解密),預設訪問密文資料,支援通過全密態用戶端解密後訪問明文資料。

      • RDS MySQL資料庫的加密方式KMS密钥時,資料庫帳號預設為密文权限(JDBC解密)

      • RDS MySQL資料庫的加密方式本地密钥時,資料庫帳號預設為密文权限(无解密权限),僅支援訪問密文資料。

      您可以選擇加白的帳號,使用明文許可權直接存取加密列的明文資料。

      重要

      資料庫授權接入DSC時,如果通過一鍵串連,會自動建立首碼為sddp_auto資料庫帳號;如果通過賬密串連,會在憑據中設定一個資料庫帳號,該資料庫帳號支援DSC讀取資料庫資料進行敏感性資料分類分級掃描。因此,如果您需要繼續對資料庫最新資料進行敏感性資料分類分級,必須設定該資料庫帳號明文許可權帳號

其他動作

修改資料庫帳號許可權

除了已設定為明文权限的帳號,資料庫執行個體的其他帳號均為密文許可權。您可以根據業務情境需要,修改帳號許可權為明文权限密文权限(无解密权限)密文权限(JDBC解密)

  1. 風險治理 > 列加密頁面,單擊账号数据地區的权限设置

    您也可以在執行個體列表的操作列,單擊編輯,在编辑配置面板中,單擊賬號權限配置

  2. 账号权限设置面板,搜尋目標執行個體和帳號,查看當前帳號許可權。

    說明

    若新增資料庫帳號未在列表中顯示,請先完成資產同步後再查看。

  3. 單擊目標帳號對應操作列的修改权限

    您也可以選中多個具備相同許可權的目標帳號,單擊列表下方的批量修改权限

  4. 在修改許可權對話方塊,選中目標許可權,單擊確定

修改加密列配置

完成加密配置後:

  • 在執行個體列表展開目標執行個體,在資料庫列表,找到目標名稱,單擊开启加密关闭加密,配置單列加密。

    image

  • 在執行個體列表的操作列,單擊編輯,然後在编辑配置面板,修改密碼編譯演算法、加密方式和加密列範圍。

    image

    • 單擊加密算法加密方式修改,更新密碼編譯演算法或加密方式。

      重要

      修改加密方式會重啟加密任務,重啟過程中原加密列資料將以明文形式儲存存在資料暴露的安全風險。請謹慎操作

    • 在配置加密列的資料庫列表,找到目標名稱,單擊开启加密关闭加密,更新加密列範圍。

MySQL列加密樣本

您可以根據已設定資料庫列加密和資料庫帳號許可權,驗證訪問加密列的資料。使用密文許可權帳號訪問加密列資料返回是密文,表示資料庫列加密配置生效。

說明

RDS PostgreSQL資料庫帳號僅支援明文許可權密文許可權(JDBC解密),列加密資料驗證方法與RDS MySQL相同,下文以RDS MySQL為例介紹如何驗證訪問RDS資料庫的加密列資料。

RDS MySQL資料庫列加密樣本

前提條件

RDS MySQL 8.0版本的一個資料庫執行個體已接入DSC並完成敏感性資料分類分級,掃描結果如下圖所示。

image

配置列加密

參考上文開啟一鍵加密的操作步驟,對該資料庫執行個體進行列加密配置:

  1. 對資料表users中的手機號碼列(phone)開啟加密。

    image

  2. 對繫結資料庫帳號,分別設定以下存取權限。

    image

使用資料庫帳號訪問加密列資料

  1. 使用明文权限帳號登入資料庫。具體操作,請參見通過DMS登入RDS資料庫

  2. 執行SELECT語句查看資料表,加密列會返回明文資料。

    image

  3. 切換密文权限(无解密权限)帳號登入資料庫,執行SELECT語句查看資料表,加密列會返回密文資料。

    image

  4. 切換密文权限(JDBC解密)帳號登入資料庫,執行SELECT語句查看資料表,加密列會返回密文資料。

    image

PolarDB MySQL資料庫列加密樣本

前提條件

PolarDB MySQL 5.7版本的一個資料庫叢集已接入DSC進行敏感性資料分類分級,掃描結果如下圖所示。

image

配置列加密

參考上文開啟一鍵加密的操作步驟,對該資料庫執行個體進行列加密配置:

  1. 對資料表user3中的密碼列(password)開啟加密。

    image

  2. 對繫結資料庫帳號,分別設定以下存取權限。

    image

使用資料庫帳號訪問加密列資料

因為使用DMS是通過主地址串連PolarDB MySQL版資料庫叢集,列加密策略不生效,所以本樣本使用命令列通過資料庫Proxy 位址串連PolarDB MySQL版資料庫叢集,來驗證列加密結果。

  1. 在伺服器上安裝與作業系統及版本適配的MySQL。

  2. 通過以下命令列串連資料庫叢集。

    mysql -h<串連地址> -P<連接埠> -u<使用者名稱> -p<密碼>
    • 串連地址和連接埠:使用叢集地址,且確保您的伺服器能訪問該地址。配置和查看串連地址的詳細內容,請參見設定資料庫代理管理串連地址

    • 使用者名稱和密碼:本樣本分別使用資料庫綁定的具備明文許可權密文許可權(JDBC解密)的資料庫帳號和密碼。

    串連命令列樣本:

    • 使用明文許可權帳號:mysql -hpc-bp1fd7********v6f.rwlb.rds.aliyuncs.com -P3306 -usddp_polardb -pH********4

    • 使用密文許可權(JDBC解密)帳號:mysql -hpc-bp1fd7********v6f.rwlb.rds.aliyuncs.com -P3306 -usddp_03 -pP********3

  3. 執行以下命令查看資料表。

    1. 通過命令列use <資料庫名>;,進入目標資料庫。本樣本選擇資料庫sddp_test。

      use sddp_test;
    2. 執行SELECT語句查看資料表。

      SELECT * FROM user3 LIMIT 0, 3;

    返回結果樣本:

    • 明文許可權帳號,加密列返回明文資料。

      image

    • 密文許可權(JDBC解密)帳號,加密列返回密文資料。

      image

通過用戶端解密後訪問加密列明文

如果需要使用用戶端訪問資料庫加密列的明文資料,您可以使用具備密文权限(JDBC解密)的帳號,通過Java或Go語言的全密態用戶端解密並訪問。

程式設計語言

支援的資料庫類型

相關文檔

Java

  • RDS MySQL版

  • RDS PostgreSQL版

  • PolarDB MySQL版

  • PolarDB PostgreSQL版

  • PolarDB PostgreSQL版(相容Oracle)

  • PolarDB-X 2.0

整合EncJDBC(支援使用本地密鑰和KMS密鑰解密)

Go

  • RDS MySQL版

  • PolarDB MySQL版

  • PolarDB-X 2.0

整合GoLang驅動(僅支援使用本地密鑰解密)

檢查失敗常見問題

相關文檔