iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 12
0
自我挑戰組

IT人員面面觀系列 第 12

[Day12][SQL Server]資料的遮罩

以前在做資料遮罩時,幾乎都是要自己寫些程式才能實作出來,

現在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')

https://ithelp.ithome.com.tw/upload/images/20181012/20107408vphZuFEM0h.jpg
建立測試資料後,先針對生日欄位設定預設的遮罩功能

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了!
https://ithelp.ithome.com.tw/upload/images/20181012/201074084IIS50XEdd.jpg

以上是基本的遮罩應用,明日將介紹更進階的遮罩功能。


上一篇
[Day11][C#]簡易Log method
下一篇
[Day13][SQL Server]資料的遮罩Part 2
系列文
IT人員面面觀19

尚未有邦友留言

立即登入留言