我想在屏蔽特定列的同时导出表,例如:
SELECT randomMask(userId), name, location FROM travel_location;
要求:
示例结果:
答案 0 :(得分:1)
您可以使用checksum()
来获得合理的随机值:
select checksum(userId)
当然会有冲突,但这可能是可以接受的。
A,每次运行查询时,它都是相同的。要解决此问题,您可以添加随机数或使用时间:
select checksum(userid + rand())
或:
select checksum(convert(varchar(255), userid) + convert(varchar(255), getdate())
对于每个出现的表达式,rand()
和getdate()
的所有行都保证是相同的。但是,它们在查询中会有所不同。
答案 1 :(得分:0)
您可以尝试(适用于SQL Server 2016或更高版本):
var modelImg = model[selectedModelId].modelImg;
var source = '/storage' + modelImg;
source = source.split("/item");
source.join("");
document.getElementById("myImg").src = source;
未获得如下所示的解锁权限的用户将看不到此更改后的真实价值。
ALTER Table travel_location
ALTER COLUMN userId ADD MASKED WITH (FUNCTION='Random(1,100000)')