全部產品
Search
文件中心

Data Management:行級管控

更新時間:Nov 16, 2024

本文為您介紹如何對錶中行資料進行管控,以及申請行許可權。

應用情境

DMS的行級管控可保護橫向資料安全,所有的行通過一個或若干個確定的值(管控欄位的取值)進行區分,實現對行資料的管控。

  • 如果您需要使員工僅可查看自己負責地區的資料,不能查看全部地區的資料,可以使用DMS的行級管控功能。

  • 如果您資料庫下有多張表,且多張表都需要使用同樣的管控值進行行級管控,則可通過一個管控組同時對多張表進行管控。

前提條件

  • 執行個體的管控模式為安全協同。更多資訊,請參見管控模式

  • 執行個體已開啟Sensitive Data Discovery and Protection。具體操作,請參見開通Sensitive Data Discovery and Protection

  • 系統角色為DBA、管理員或安全性系統管理員。查看系統角色的操作,請參見查看我的系統角色

  • 資料庫為關係型資料庫。例如RDS MySQLRDS PostgreSQLPolarDB MySQL版等。

    說明

    當前僅支援物理庫。

操作步驟

本樣本以滿足前提條件的poc_prod生產類型資料庫舉例。

步驟一:添加行級管控

  1. 登入Data Management 5.0

  2. 單擊控制台左上方的2023-01-28_15-57-17.png表徵圖,選擇全部功能 > 安全與規範 > 敏感性資料管理 > 敏感性資料資產

    說明

    若您使用的是非極簡模式的控制台,在頂部功能表列中,選擇安全與規範 > 敏感性資料管理 > 敏感性資料資產

  3. 單擊頁面右上方的全域敏感性資料列表,進入設定行級管控的頁面。

    說明

    您也可以在執行個體列表地區的已開啟頁簽下,單擊目標執行個體右側的敏感性資料列表,進入設定行級管控的頁面。

  4. 添加管控組。

    行級管控頁簽下,單擊添加管控組,並輸入管控組名稱。

  5. 添加行配置。

    1. 單擊添加行配置

    2. 搜尋並選擇目標資料庫。

    3. 選擇目標表和需要設定管控的欄位。

      說明

      同一個管控組中不可重複定義行級管控表,且一張表僅支援定義一個欄位。

    4. 單擊添加

  6. 添加管控行值。

    1. 單擊管控組名稱右側的詳情

    2. 在詳情頁面,單擊添加行值,配置如下資訊。

      配置項

      說明

      是否追加

      取值及說明如下:

      • :本次匯入將在現有的行值列表上繼續新增。

      • :本次匯入將會覆蓋原來的行值列表。

      行值內容

      增加管控的行值。多行值內容,需要使用英文逗號(,)分隔。

    3. 單擊匯入

      出現匯入行值成功的提示後,表示行值已追加成功。

步驟二:申請行許可權

所有使用者(包含管理員、DBA)在查詢該行的資料前,都需要申請受管控的行許可權。

  1. 登入Data Management 5.0

  2. 單擊控制台左上方的2023-01-28_15-57-17.png表徵圖,選擇全部功能 > 安全與規範 > 許可權中心 > 許可權工單

    說明

    若您使用的是非極簡模式的控制台,在頂部功能表列中,選擇安全與規範 > 許可權中心 > 許可權工單

  3. 許可權申請工單列表頁面,單擊右上方的許可權申請 > 行許可權

  4. 選中目標行,單擊添加,將其移動至確認已選擇的庫/表/列框中。

  5. 選擇許可權地區,選擇查詢許可權,再配置期限申請原因等資訊。

  6. 配置完成後,單擊提交申請。等待審批通過,在SQL視窗查詢行級管控資料。

    說明

    提交申請後,請等待審批通過,您可以在工作台的首頁,查看許可權申請工單的審核進度。

其他動作

  • 刪除行級管控組:在行級管控的頁簽下,刪除管控組。刪除管控組後,設定的行級管控能力將失效。

  • 編輯行級管控組:在行級管控的頁簽下,編輯管控組名稱及設定的原管控欄位等資訊。

常見問題

Q:為什麼在授予管控行的查詢許可權後,在SQL視窗執行查詢SQL時還會失敗?

A:請根據如下步驟進行排查:

  1. 請確保您具有目標資料庫、表的查詢許可權。授權的具體操作,請參見申請行許可權

  2. 在SQL視窗使用包含WHERE條件的SQL語句查詢管控的資料行。

    例如,受管控的欄位為buyer_name,受管控的行值為name1、name2和name3,在已有資料庫、表dms_test的查詢許可權的前提下,通過SQL視窗執行如下SQL,查詢受管控的資料行。

    • 查詢單個管控值所在的資料行時,可在SQL語句的WHERE條件中使用=IN。樣本SQL如下:

      SELECT * FROM dms_test WHERE buyer_name ='name1';
    • 查詢多個管控值所在的資料行時,可在WHERE條件中使用IN。樣本SQL如下:

      SELECT * FROM dms_test WHERE buyer_name IN ('name1', 'name2','name3');