如何Sql服务器命令?

How to Sql Server Command?

我想更改2个字母并屏蔽剩余的字母。我改变了字母但没有掩盖其他字母。这个更改命令是

SELECT NAME,
       CONCAT(SUBSTRING(NAME, 1, 2), 
              SUBSTRING(NAME, 4, 1), 
              SUBSTRING(NAME, 3, 1), 
              SUBSTRING(NAME, 5, ABS(LEN(NAME) -4))) 
       AS CHANGELETTER
FROM TESTBILGILER

如何屏蔽 SQL SERVER 2014?

美好的一天,

In this article you can read about the Database Engine Dynamic Data Masking feature in SQL Server 2016, and in this article you can watch how we can implement the same solution in older versions。基本思想是使用视图和触发器在数据库级别创建安全层。

** 如果您将 post 查询以创建特定的 table 并插入一些样本数据 + 根据样本数据请求的结果,那么我们可以帮助您找到特定的可以在屏蔽过程中使用的查询(在实现屏蔽的视图中)

有点难看,不过还有一个选择

例子

Declare @YourTable table(SomeCol varchar(50))
Insert Into @YourTable values
 ('Chirstina')
,('John')
,('Susan')
,('Wil')      -- May want to wrap in a case for smaller strings
,('Bo')       -- May want to wrap in a case for smaller strings


Select Masked = replicate('X',((len(SomeCol)-2)/2))
               +substring(SomeCol,((len(SomeCol)-2)/2)+1,2)
               +replicate('X',len(SomeCol)-((len(SomeCol)-2)/2)-2)
 From @YourTable

Returns

Masked
XXXrsXXXX
XohX
XusXX
WiX
Bo

这个函数可以满足您的要求。 它是如何工作的? 从两个 X 开始,追加第 4 个字符,追加第 3 个字符,然后追加与原始字符串中的字符一样多的 X。 这将比必要的多添加 4 个 X,但没关系。 最后,截断结果以匹配原始字符串的长度。 这是处理短于 4 个字符的输入字符串所必需的。

create table X ( Name nvarchar(1000) )

insert into X ( Name ) values 
('Christina'), -- 'XXirXXXXX'
('John'),      -- 'XXnh'
('Susan'),     -- 'XXasX'
('Wil'),       -- 'XXl'
('Bo'),        -- 'XX'
('Q'),         -- 'X'
('')           -- ''

select Name, substring ( 'XX' + substring(Name,4,1) + substring(Name,3,1) + replicate('X',len(Name) ), 1, len(Name) ) from X