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。 |
|
|
RDS PostgreSQL版 | 大版本為PostgreSQL 16,且核心小版本必須大於或等於20241230。 | AES_256_GCM。 | 本地密鑰。 |
|
PolarDB MySQL版 | 大版本為MySQL 5.7或MySQL 8.0,且資料庫代理版本必須大於或等於2.8.36。 | 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。 |
| 本地密鑰。 |
操作步驟
開通DSC執行個體後,首次登入控制台使用資料庫列加密功能時,需依次完成以下步驟:授權DSC訪問雲資源、資料庫資產同步、執行敏感性資料識別任務,開啟列加密功能。
步驟一:授權DSC訪問雲資源
完成授權後,DSC執行個體才能訪問OSS、RDS、MaxCompute等雲端服務的資源。
登入資料資訊安全中心控制台。
在RAM授權對話方塊中,單擊立即授權。
步驟二:資料庫資產同步
在使用DSC檢測雲產品(包括RDS、PolarDB等)中存在的敏感性資料或審計資料庫活動前,您需要先完成資產同步。
在左側導覽列,選擇资产中心。
在资产中心頁面,單擊資產同步。
說明購買DSC執行個體後,首次登入控制台將自動執行雲上資產列表同步任務,無需手動操作。DSC會每日零點自動掃描並同步資產列表。
步驟三:開啟分類分級
為實現列加密功能,您需要先授權資料庫連接,並完成資料識別任務。支援一鍵連接和關聯賬號。
您可以根據下表中對應的資料庫支援的串連方式和資料安全需要選擇合適的串連方式。
如果您的資料庫類型支援一鍵串連,且您沒有將當前資料庫作為脫敏任務目標資料庫的需求,建議您使用一鍵串連方式。
如果需將資料庫作為脫敏任務的目標庫,您必須要選擇賬密串連方式,並使用具有讀寫權限的帳號串連資料庫。
一鍵連結和賬密連結支援的資料資產類型
在左側導覽列,選擇资产中心。
在左側結構化資料地區,單擊需要配置列加密的資料類型。
單擊目標資產執行個體分類分級列的
。說明請確保資料庫執行個體已建立資料庫,且实例状态為運行中。若未建立資料庫,則無法啟用分類分級功能,也無法建立相應的識別任務。

在开启分类分级對話方塊中,按照如下內容進行配置。
配置項
說明
开启方式
配置您串連資料庫進行資料檢測的帳號資訊。支援兩種配置方式:
自动创建数据库账号:DSC會自動在目標資料資產中建立一個以
sddp_auto開頭的唯讀帳號,通過該帳號串連目標資料庫進行資料識別任務。說明僅對支援一鍵開啟功能的資料類型,可以選擇此方式。
手动输入账号密码:配置您串連資料庫的帳號密碼。
授权范围
授權進行資料檢測的範圍。
整个数据源。
在数据源列表管理授权范围:選擇授權範圍。
自动创建系统默认任务开始扫描
選中後DSC會在資料庫連接成功自動後建立預設掃描任務。
您可以在頁簽中,單擊系統默認任務,查看掃描任務執行情況。具體操作,請參見通過識別任務掃描敏感性資料。
实例下新增数据库,自动连接
選中後當DSC進行手動或自動資產同步後,檢測到您的資料庫執行個體中存在新增資料庫,會自動連接。
配置完成後,單擊確定。
步驟四:查看待加密資料庫資訊
資料識別任務掃描完成後,查看已成功接入DSC的資料庫執行個體資訊,包括總列數、列加密情況、資料庫帳號資訊等。
在左側導覽列,選擇。
在列加密頁面查看以下資訊。您可通過資料庫列表上方的搜尋組件,例如資產類型、加密狀態(已加密列、未加密列或加密失敗)、敏感等級等搜尋並查看目標資料庫執行個體資訊。

頁面資訊
說明
總列數
已成功接入DSC的資料庫執行個體自主資料庫表中的總列數。
敏感数据(S3及以上)
資料識別結果中敏感等級為S3及以上的列。其中包含敏感列,已加密列,未加密列,加密失敗等資訊。
账号数据
总账号数:每個資料庫的每個帳號計為一個資料庫帳號,例如:A資料庫和B資料庫均有帳號C,則資料庫帳號數計為兩個。
未配置加密:資料庫中所有列都未開啟加密時,帳號許可權為未配置加密。
明文权限或密文权限數:開啟資料庫的列加密時,可設定資料庫帳號訪問加密列資料的許可權。
您可以單擊以上統計項的任一數字或單擊权限设置,在账号权限设置面板,搜尋並查看目標資料庫執行個體下的所有帳號資訊,以確認為不同資料庫帳號設定不同存取權限。
列表資訊
展示DSC實例名稱、資產類型、地域、加密算法、明文权限账号、加密检查等資訊。
僅支援對加密檢查通过的執行個體配置列加密。
加密检查結果為“未通過”。如果資料庫版本不相容,請先單擊加密检查列的前往升级,跳轉到RDS或PolarDB控制台對應的升級頁面,升級資料庫版本。具體操作請參見檢查失敗常見問題。
完成版本升級或狀態更新後,您需要在DSC控制台完成資產同步操作,同步資料庫最新資訊。
在左側導覽列,選擇资产中心。,然後在資產管理頁簽,單擊資產授權管理。
在資產授權管理面板左側產品名稱導覽列,單擊目標執行個體類型(RDS或PolarDB),然後單擊資產同步。
步驟五:配置列加密
確認目標資料庫執行個體資訊且加密检查顯示通过後,完成列加密配置。
開啟一鍵加密
未開啟資料庫的一鍵加密前,資料庫的密碼編譯演算法和加密方式未配置,此時不支援對資料庫的單列開啟加密。
DSC支援三種方式開啟列加密。
單擊資料庫執行個體列表上方的一键加密,為所有未加密列配置列加密。
單擊目標資料庫執行個體對應操作列的一键加密,為目標資料庫執行個體配置列加密。

在资产中心頁面,單擊目標資料庫執行個體列加密列的
。
在加密配置面板,選擇待加密的資產類型、實例名稱、加密算法、加密方式、明文权限账号以及選擇需要配置列加密的目標库、錶和列,然後單擊確定。

您需注意以下參數配置:
其他動作
修改資料庫帳號許可權
除了已設定為明文权限的帳號,資料庫執行個體的其他帳號均為密文許可權。您可以根據業務情境需要,修改帳號許可權為明文权限、密文权限(无解密权限)或密文权限(JDBC解密)。
在頁面,單擊账号数据地區的权限设置。
您也可以在執行個體列表的操作列,單擊編輯,在编辑配置面板中,單擊賬號權限的配置。
在账号权限设置面板,搜尋目標執行個體和帳號,查看當前帳號許可權。
說明若新增資料庫帳號未在列表中顯示,請先完成資產同步後再查看。
單擊目標帳號對應操作列的修改权限。
您也可以選中多個具備相同許可權的目標帳號,單擊列表下方的批量修改权限。
在修改許可權對話方塊,選中目標許可權,單擊確定。
修改加密列配置
完成加密配置後:
在執行個體列表展開目標執行個體,在資料庫列表,找到目標库、錶和列名稱,單擊开启加密或关闭加密,配置單列加密。

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

單擊加密算法或加密方式的修改,更新密碼編譯演算法或加密方式。
重要修改加密方式會重啟加密任務,重啟過程中原加密列資料將以明文形式儲存,存在資料暴露的安全風險。請謹慎操作。
在配置加密列的資料庫列表,找到目標库、錶和列名稱,單擊开启加密或关闭加密,更新加密列範圍。
MySQL列加密樣本
您可以根據已設定資料庫列加密和資料庫帳號許可權,驗證訪問加密列的資料。使用密文許可權帳號訪問加密列資料返回是密文,表示資料庫列加密配置生效。
RDS PostgreSQL資料庫帳號僅支援明文許可權和密文許可權(JDBC解密),列加密資料驗證方法與RDS MySQL相同,下文以RDS MySQL為例介紹如何驗證訪問RDS資料庫的加密列資料。
RDS MySQL資料庫列加密樣本
前提條件
RDS MySQL 8.0版本的一個資料庫執行個體已接入DSC並完成敏感性資料分類分級,掃描結果如下圖所示。

配置列加密
參考上文開啟一鍵加密的操作步驟,對該資料庫執行個體進行列加密配置:
對資料表users中的手機號碼列(phone)開啟加密。

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

使用資料庫帳號訪問加密列資料
使用明文权限帳號登入資料庫。具體操作,請參見通過DMS登入RDS資料庫。
執行SELECT語句查看資料表,加密列會返回明文資料。

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

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

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

配置列加密
參考上文開啟一鍵加密的操作步驟,對該資料庫執行個體進行列加密配置:
對資料表user3中的密碼列(password)開啟加密。

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

使用資料庫帳號訪問加密列資料
因為使用DMS是通過主地址串連PolarDB MySQL版資料庫叢集,列加密策略不生效,所以本樣本使用命令列通過資料庫Proxy 位址串連PolarDB MySQL版資料庫叢集,來驗證列加密結果。
在伺服器上安裝與作業系統及版本適配的MySQL。
通過以下命令列串連資料庫叢集。
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。
執行以下命令查看資料表。
通過命令列
use <資料庫名>;,進入目標資料庫。本樣本選擇資料庫sddp_test。use sddp_test;執行SELECT語句查看資料表。
SELECT * FROM user3 LIMIT 0, 3;
返回結果樣本:
明文許可權帳號,加密列返回明文資料。

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

通過用戶端解密後訪問加密列明文
如果需要使用用戶端訪問資料庫加密列的明文資料,您可以使用具備密文权限(JDBC解密)的帳號,通過Java或Go語言的全密態用戶端解密並訪問。
程式設計語言 | 支援的資料庫類型 | 相關文檔 |
Java |
| 整合EncJDBC(支援使用本地密鑰和KMS密鑰解密) |
Go |
| 整合GoLang驅動(僅支援使用本地密鑰解密) |
檢查失敗常見問題
RDS或PolarDB資料庫版本不支援
單擊加密檢查列的前往升級,跳轉到RDS或PolarDB控制台對應的升級頁面,升級資料庫版本。
RDS核心版本或PolarDB資料庫代理版本不支援
RDS資料庫執行個體為唯讀執行個體
由於建立唯讀執行個體時會從備執行個體複製資料,資料與主執行個體一致,主執行個體的資料更新也會在主執行個體完成操作後立即自動同步到所有隻讀執行個體,因此您可以在主執行個體進行列加密配置。
資料庫執行個體狀態不是“運行中”
例如暫停中或維護中的資料庫執行個體,不支援配置列加密。您可以啟動執行個體或等待執行個體維護完成,確認資料庫執行個體狀態為運行中後再進行列加密配置。
相關文檔
資料庫列加密的功能和原理,請參見列加密概述。
資料庫授權與串連的詳細操作,請參見通用資料庫授權。
您可以查看和訂正敏感性資料識別結果的具體操作,請參見通過識別任務掃描敏感性資料。
如果授權後資料庫敏感列資料發生變化,需重新掃描。具體操作,請參見通過識別任務掃描敏感性資料。
