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

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

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

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

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

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