SQL 服务器屏蔽不工作 - 在 Tempdb 上工作

SQL Server Masking not working - Does work on Temp DB

当我 运行 在临时数据库上使用以下代码时,它确实有效,但当我 运行 在正常 table 上使用时,它不起作用。很奇怪,不确定我错过了什么。

CREATE TABLE #Test (Username VARCHAR(20))

insert into #Test (Username)
values ( 'Graham' ),( 'Bill'),( 'Ray')

ALTER TABLE #Test ALTER COLUMN [Username]    VARCHAR(50) MASKED WITH (FUNCTION = 'partial(2,"XXX",0)'); 

有人知道这是怎么回事吗?

我确实根据这个 link 做了所有正确的事情。 https://docs.microsoft.com/en-us/sql/relational-databases/security/dynamic-data-masking?view=sql-server-2017

我发现了我的问题,我不得不在 table 上为用户 GRANT Select。

GRANT SELECT ON [dbo].[Test] TO [TestUser];