行級管控
本文為您介紹如何對表中行數(shù)據(jù)進行管控,以及申請行權(quán)限。
應(yīng)用場景
DMS的行級管控可保護橫向數(shù)據(jù)安全,所有的行通過一個或若干個確定的值(管控字段的取值)進行區(qū)分,實現(xiàn)對行數(shù)據(jù)的管控。
如果您需要使員工僅可查看自己負責地域的數(shù)據(jù),不能查看全部區(qū)域的數(shù)據(jù),可以使用DMS的行級管控功能。
如果您數(shù)據(jù)庫下有多張表,且多張表都需要使用同樣的管控值進行行級管控,則可通過一個管控組同時對多張表進行管控。
前提條件
實例的管控模式為安全協(xié)同。更多信息,請參見管控模式。
實例已開啟敏感數(shù)據(jù)保護。具體操作,請參見開通敏感數(shù)據(jù)保護。
系統(tǒng)角色為DBA、管理員或安全管理員。查看系統(tǒng)角色的操作,請參見查看我的系統(tǒng)角色。
數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫。例如RDS MySQL、RDS PostgreSQL、PolarDB MySQL版等。
說明當前僅支持物理庫。
操作步驟
本示例以滿足前提條件的poc_prod
生產(chǎn)類型數(shù)據(jù)庫舉例。
步驟一:添加行級管控
單擊控制臺左上角的圖標,選擇
。說明若您使用的是非極簡模式的控制臺,在頂部菜單欄中,選擇
。單擊頁面右上角的全域敏感數(shù)據(jù)列表,進入設(shè)置行級管控的頁面。
說明您也可以在實例列表區(qū)域的已開啟頁簽下,單擊目標實例右側(cè)的敏感數(shù)據(jù)列表,進入設(shè)置行級管控的頁面。
添加管控組。
在行級管控頁簽下,單擊添加管控組,并輸入管控組名稱。
添加行配置。
單擊添加行配置。
搜索并選擇目標數(shù)據(jù)庫。
選擇目標表和需要設(shè)置管控的字段。
說明同一個管控組中不可重復(fù)定義行級管控表,且一張表僅支持定義一個字段。
單擊添加。
添加管控行值。
單擊管控組名稱右側(cè)的詳情。
在詳情頁面,單擊添加行值,配置如下信息。
配置項
說明
是否追加
取值及說明如下:
是:本次導(dǎo)入將在現(xiàn)有的行值列表上繼續(xù)新增。
否:本次導(dǎo)入將會覆蓋原來的行值列表。
行值內(nèi)容
增加管控的行值。多行值內(nèi)容,需要使用英文逗號(,)分隔。
單擊導(dǎo)入。
出現(xiàn)導(dǎo)入行值成功的提示后,表示行值已追加成功。
步驟二:申請行權(quán)限
所有用戶(包含管理員、DBA)在查詢該行的數(shù)據(jù)前,都需要申請受管控的行權(quán)限。
單擊控制臺左上角的圖標,選擇
。說明若您使用的是非極簡模式的控制臺,在頂部菜單欄中,選擇
。在權(quán)限申請工單列表頁面,單擊右上角的
。選中目標行,單擊添加,將其移動至確認已選擇的庫/表/列框中。
在選擇權(quán)限區(qū)域,選擇查詢權(quán)限,再配置期限和申請原因等信息。
配置完成后,單擊提交申請。等待審批通過,在SQL窗口查詢行級管控數(shù)據(jù)。
說明提交申請后,請等待審批通過,您可以在工作臺的首頁,查看權(quán)限申請工單的審核進度。
其他操作
刪除行級管控組:在行級管控的頁簽下,刪除管控組。刪除管控組后,設(shè)置的行級管控能力將失效。
編輯行級管控組:在行級管控的頁簽下,編輯管控組名稱及設(shè)置的原管控字段等信息。
常見問題
Q:為什么在授予管控行的查詢權(quán)限后,在SQL窗口執(zhí)行查詢SQL時還會失敗?
A:請根據(jù)如下步驟進行排查:
請確保您具有目標數(shù)據(jù)庫、表的查詢權(quán)限。授權(quán)的具體操作,請參見申請行權(quán)限。
在SQL窗口使用包含WHERE條件的SQL語句查詢管控的數(shù)據(jù)行。
例如,受管控的字段為buyer_name,受管控的行值為name1、name2和name3,在已有數(shù)據(jù)庫、表dms_test的查詢權(quán)限的前提下,通過SQL窗口執(zhí)行如下SQL,查詢受管控的數(shù)據(jù)行。
查詢單個管控值所在的數(shù)據(jù)行時,可在SQL語句的WHERE條件中使用
=
和IN
。示例SQL如下:SELECT * FROM dms_test WHERE buyer_name ='name1';
查詢多個管控值所在的數(shù)據(jù)行時,可在WHERE條件中使用
IN
。示例SQL如下:SELECT * FROM dms_test WHERE buyer_name IN ('name1', 'name2','name3');