【SQL Server 2016動態(tài)數(shù)據(jù)屏蔽入門】定義屏蔽
我們在前面分別介紹了《【SQL Server 2016動態(tài)數(shù)據(jù)屏蔽入門】配置動態(tài)數(shù)據(jù)屏蔽》和《【SQL Server 2016動態(tài)數(shù)據(jù)屏蔽入門】Azure SQL 數(shù)據(jù)庫V12(預覽版)的動態(tài)數(shù)據(jù)屏蔽》?,F(xiàn)在,我們將具體介紹如何定義屏蔽。
在Azure預覽門戶頁,我們選擇導航路線為“瀏覽全部/SQL數(shù)據(jù)庫/[數(shù)據(jù)庫名稱]/動態(tài)數(shù)據(jù)屏蔽(預覽版)”。到這里會顯示一些預定義屏蔽功能的摘要說明。然后點擊“添加屏蔽”。在字段下拉列表中選中“HomePhone”字段,在“屏蔽域格式”下拉列表中選擇“定制字符串”。使用“0”作為起始顯示字符位置前綴參數(shù),“ XXX-XXX-”作為填充字符串,設置末尾顯示字符數(shù)為“4”。點擊“新建屏蔽規(guī)則”頁的“保存”按鈕,然后回到“動態(tài)數(shù)據(jù)屏蔽(預覽版)”頁面再次點擊保存。門戶會顯示提示信息表示修改的設置已生效。

圖15:在Azure SQL數(shù)據(jù)庫中為“HomePhone”字段創(chuàng)建設置屏蔽規(guī)則
我們再來查詢一下員工表看設置是否生效。這里要注意,屏蔽規(guī)則應用完全生效可能需要一兩分鐘時間。

圖16:“HomePhone”字段應用屏蔽規(guī)則之后查詢員工表結果
Azure SQL數(shù)據(jù)庫中屏蔽功能表現(xiàn)與SQL Server 2016 CTP2中結果一樣。在這一步,很顯然我們也可以像在前面GUI中操作一樣的方式來定義其它屏蔽規(guī)則?,F(xiàn)在,似乎我們必須用門戶頁GUI來定義屏蔽規(guī)則,因為如果我使用DDL來定義,雖然語法會接受通過,但是輸出并沒有改變。
Azure SQL數(shù)據(jù)庫內(nèi)置了一些常見的屏蔽規(guī)則,其中就包括了為社會安全號碼(SSN)提供的內(nèi)置規(guī)則。我們可以給員工信息表中SSN字段設置屏蔽,如下圖所示。

圖17:使用內(nèi)置屏蔽規(guī)則應用與社會安全號碼(SSN)
設置后查詢結果如下圖18。

圖18:社會安全號碼(SSN)字段配置屏蔽規(guī)則后查詢員工表的結果
盡管數(shù)據(jù)顯示屏蔽了,但現(xiàn)實效果不一定是我們想要的格式。這個屏蔽碼對SSN字段很有效,該字段域比較寬,而且數(shù)據(jù)中間有破折號分隔。但是對于其它字段這個形式就不一定合適了。圖19展示了對員工表的“EmpID”字段應用屏蔽規(guī)則時啟用“數(shù)字(隨機數(shù)字范圍)”選項的配置。

圖19:用數(shù)字(指定范圍內(nèi)隨機數(shù))作為屏蔽碼應用于員工表
很顯然,用隨機數(shù)據(jù)屏蔽“EmpID”是不現(xiàn)實的,這里只是為了展示這種內(nèi)置的屏蔽功能。
另外,要注意動態(tài)數(shù)據(jù)屏蔽還有一個選項是設置特權用戶的。這里設置的特權用戶在顯示數(shù)據(jù)時不啟用屏蔽規(guī)則。如果要演示這一特性,我們需要創(chuàng)建用戶并另外建立與Azure SQL數(shù)據(jù)庫的連接。這部分的詳細操作多少有點偏離本文的主題,用戶創(chuàng)建和模擬演示的步驟還是比較容易的,不再詳述。
【編輯推薦】
- 【SQL Server 2016數(shù)據(jù)加密新功能實戰(zhàn)】三步配置Always Encrypted安全功能
- 【SQL Server 2016數(shù)據(jù)加密新功能實戰(zhàn)】如何測試Always Encrypted安全特性?
- 【SQL Server 2016動態(tài)數(shù)據(jù)屏蔽入門】配置動態(tài)數(shù)據(jù)屏蔽
- 【SQL Server 2016動態(tài)數(shù)據(jù)屏蔽入門】Azure SQL 數(shù)據(jù)庫V12版的動態(tài)數(shù)據(jù)屏蔽
【責任編輯:honglu TEL:(010)68476606】