實戰三大資料保護新功能 SQL Server 2016更安全

本文將說明SQL Server 2016中三項與安全性有關的新功能:一律加密、資料列層級安全性及動態資料遮罩,讓企業即使將資料放在公有雲上也能擁有資料的所有權,並且可以管理資料存取權限,為資料建立遮罩避免外流。

SQL Server 2016提供數種遮罩規則來保護資料行中的資料,包含以下幾種:

·Default:依照資料行的資料類型以相對應的預設值來呈現。例如字元字串資料類型的資料行(如char、nchar、varchar、nvarchar、text、ntext)經過遮罩後會以XXXX來呈現;數值資料類型的資料行(如bigint、bit、decimal、int、money、numeric、smallint、smallmoney、tinyint、float、real)經過遮罩後則呈現0;日期及時間資料類型的資料行(如date、datetime2、datetime、datetimeoffset、smalldatetime、time)會被遮罩成01.01.2000 00:00:00.0000000。

·Email:對於儲存電子郵件位址的資料行,經過遮罩後會取原始資料內容的第一個字元,中間加上XXX@XXXX,最後以.com為結尾的格式來呈現。

·Random:對於數值資料類型可以自訂一段數值區間,呈現資料時會隨機產生該資料行的內容。

·Custom String:若上述內建的遮罩規則都不符合所需,SQL Server提供自訂遮罩規則,可以客製化遮罩後想要呈現的結果。

使用動態資料遮罩可以透過T-SQL在建立資料表時,利用「ADD MASKED WITH ( FUNCTION = '遮罩規則')」資料行定義的陳述式來為資料行加入遮罩規則。

圖18示範以T-SQL建立Memebership資料表,並在FirstName資料行使用自訂遮罩規則,Phone#資料 行使用預設遮罩規則,Email資料行使用Email遮罩規則。


▲圖18 建立資料表並設定遮罩規則範例。

動態資料遮罩一樣適用於已經存在的資料表,利用ALTER TABLE...ALTER COLUMN加上「ADD MASKED WITH ( FUNCTION = '遮罩規則')」資料行定義的陳述式,就可以為資料行加入遮罩規則,如圖19所示。


▲圖19 修改或設定遮罩規則至現有資料表範例。

一旦資料行套用遮罩規則後,所有查詢該資料行的連線都會看到遮罩後的結果,若特權使用者或系統管理員想要看到未經遮罩的原始內容,只需將UNMASK的權限賦予使用者或角色,即可不受動態資料遮罩所影響,如圖20所示。


▲圖20 賦予使用者或角色UNMASK權限範例。。

結語

本文說明SQL Server 2016三項與安全性有關的新功能,包含一律加密、資料列層級安全性和動態資料遮罩,讓企業在規劃將資料放在公有雲上可以真正擁有資料的所有權,不用擔心資料被系統管理員偷看,並能夠更細緻地管理資料存取權限,以及輕易地為資料建立遮罩來防止機敏資料外洩。

<本文作者:莊國志,Microsoft MVP,網路暱稱Terry Chuang。擁有MCITP證照,個人部落格:http://www.dotblogs.com.tw/terrychuang>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!