首页 > 解决方案 > 我在掩盖表中列的值时遇到问题

问题描述

WORKER_REF_ID   BONUS_AMOUNT    BONUS_DATE
      1            5000      2016-02-20 00:00:00.000
      1            4500      2016-02-20 00:00:00.000
      2            3500      2016-06-11 00:00:00.000

这就是我的 Bonus1 表的样子,我想屏蔽表中的 Bonus_Amount 列。我正在使用下面的代码来屏蔽相同但在执行它时遇到一些问题。

  alter table [AdventureWorks].[dbo].[Bonus1]
  alter column Bonus_Amount add masked with (function ='random(1,5)').

如何解决问题。这是我收到的错误消息:-

关键字“with”附近的语法不正确。
关键字“with”附近的语法不正确。如果此语句是公用表表达式、xmlnamespaces 子句或更改跟踪上下文子句,则前面的语句必须以分号结束。

标签: sqlsql-server

解决方案


SQL Server 2016+ 支持屏蔽功能

您不能在 SQL Server 2014 中使用屏蔽功能。

如果您坚持使用数据屏蔽,您可以通过创建和使用视图来制作自己的地图。

CREATE VIEW dbo.testview
AS
SELECT
    CreditCardID,
    CardType,
    CONCAT( '**********', RIGHT( CardNumber, 4 ) ) AS [CARDNUMBER_MASKED],
    ....
from ...

参考


推荐阅读