gpt4 book ai didi

SQL Server 数据屏蔽 屏蔽所需的最低权限

转载 作者:行者123 更新时间:2023-12-03 09:49:42 28 4
gpt4 key购买 nike

我正在屏蔽 SQL Server 2017 数据库中的一些数据。我用这个语句屏蔽了一个列:

ALTER TABLE lEmployee
ALTER COLUMN FirstName nvarchar(160)
MASKED WITH (FUNCTION = 'partial(2,"xxx",2)')

我可以在 sys.columns 中看到这现在被掩盖了。

现在在应用程序中,数据未显示为屏蔽(以该用户身份登录时也未显示在数据库中)。我还运行了以下命令以确保用户没有此权限。
REVOKE UNMASK TO testuser

任何人都可以建议所需的最低权限,以便数据屏蔽按预期工作。

先感谢您

最佳答案

您无法在 DENY UNMASKsysadmin 上使用 db_owner 。这是内置限制。

此外,如文档中所述,如果用户可以查询表,这不是 security 功能。

正如文档示例中所示,您不需要授予 REVOKE UNMASK 因为它是默认设置的:

DROP TABLE IF EXISTS  [dbo].[StackOverflow];

CREATE TABLE [dbo].[StackOverflow]
(MemberID int IDENTITY PRIMARY KEY,
FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)') NULL,
LastName varchar(100) NOT NULL,
Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULL,
Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL);

INSERT [dbo].[StackOverflow] (FirstName, LastName, Phone#, Email) VALUES
('Roberto', 'Tamburello', '555.123.4567', 'RTamburello@contoso.com'),
('Janice', 'Galvin', '555.123.4568', 'JGalvin@contoso.com.co'),
('Zheng', 'Mu', '555.123.4569', 'ZMu@contoso.net');
SELECT * FROM [dbo].[StackOverflow] ;



CREATE USER TestUser WITHOUT LOGIN;
GRANT SELECT ON [dbo].[StackOverflow] TO TestUser;

EXECUTE AS USER = 'TestUser';
SELECT * FROM [dbo].[StackOverflow] ;
REVERT;

你不能 REVOKE UNMASKsysadmindb_owner

关于SQL Server 数据屏蔽 屏蔽所需的最低权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47344924/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com