以前在做資料遮罩時,幾乎都是要自己寫些程式才能實作出來,
現在SQL Server 2016就有提供遮罩的功能供大家使用,
以下為用實例來為大家介紹用法:
首先先建立範例資料:
CREATE TABLE Cust(
ID varchar(11) primary key,
Name nvarchar(10),
Birth date,
Mail varchar(50),
Credit varchar(19))
GO
INSERT INTO Cust
VALUES ('A123456789', N'陳一', '19700101', 'aa@gmail.com', '1111-2222-3333-4444')
, ('D234567890', N'蔡三', '19790202', 'bb@gmail.com', '5555-6666-7777-8888')
, ('H987654321', N'老王', '19810303', 'cb@gmail.com', '9999-1111-2222-3333')
建立測試資料後,先針對生日欄位設定預設的遮罩功能
ALTER TABLE Cust ALTER COLUMN Birthday ADD MASKED WITH(FUNCTION='default()')
接著再建立使用者masktester,讓他有select的權限,再用他來查詢資料
CREATE USER masktester WITHOUT LOGIN
GRANT SELECT ON Cust TO masktester
EXEC AS USER = 'masktester'
SELECT * FROM Cust
查詢結果如下,原本的生日都變成1900-01-01了!
以上是基本的遮罩應用,明日將介紹更進階的遮罩功能。