我有一个表,其中包含需要清理的表和字段的名称。
我需要遍历这个表并清理每个表中的字段名称。我还想对清理算法提出任何建议。
谢谢!
嗨,你真的应该更新你的请求,说数据混淆。
但除此之外,这就是你可以做到的。首先在这个数据库中创建一个函数(不要改变这部分加载它):
CREATE FUNCTION Character_Mask
(
@OrigVal varchar(max),
@InPlain int,
@MaskChar char(1)
)
RETURNS varchar(max)
WITH ENCRYPTION
AS
BEGIN
DECLARE @PlainVal varchar(max);
DECLARE @MaskVal varchar(max);
DECLARE @MaskLen int;
SET @PlainVal = RIGHT(@OrigVal,@InPlain);
SET @MaskLen = (DATALENGTH(@OrigVal) - @InPlain);
SET @MaskVal = REPLICATE(@MaskChar, @MaskLen);
Return @MaskVal + @PlainVal;
END
GO
GRANT EXECUTE ON dbo.Character_Mask
TO Sensitive_high, Sensitive_medium, Sensitive_low;
GO
一旦你在你的数据库中拥有它,你就可以开始在视图中使用它:
CREATE VIEW dbo.MyObbedData
AS
SELECT
dbo.Character_Scramble(c.FirstName) AS Ob_First_Name,
dbo.Character_Scramble(c.LastName) AS Ob_LastName,
dbo.Character_Scramble(c.Email) AS Ob_Email,
dbo.Character_Scramble(u.UserName) AS Ob_UserName
FROM
dbo.Customer c
INNER JOIN dbo.User u
ON c.UserID = u.UserID
GO
GRANT SELECT ON dbo.MyObbedData
TO Sensitive_high, Sensitive_medium;
GO
Character_Mask 代码是从这里获取的,它可以做更多的事情,如果你想在这里阅读它是LINK
卡兹