如何在SQL Server 2012中屏蔽(混淆)某些列?

时间:2018-11-28 10:25:17

标签: sql sql-server tsql sql-server-2008 sql-server-2012

我想让数据库访问其他人,但是我想隐藏敏感数据,例如信用卡号和电子邮件地址。屏蔽功能在SQL Server 2012中不起作用。

解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您无法使用dynamic data maskingrow level security之类的新内容来限制对某些字段或行的访问,因此您可以使用旧方法。

创建视图并仅公开您需要显示的字段。仅授予对这些视图的访问权限。

不要为动态数据屏蔽感到难过。这不是安全功能,并且有多种技术可以公开信息。

尝试这样的事情:

CREATE VIEW [dbo].[vw_SenstiveData]
AS
SELECT [UserID]
      ,'XXXXXXXX' AS [UserName]
      ,LEFT([SocialID], 4) + '-XXX-XXX-XXXXXXX-' + RIGHT([SocialID], 3) AS [SocialID]
FROM [dbo].[Users]