2017-11-17 3 views
1

Ich bin dabei, einige Daten in einer SQL Server 2017-Datenbank zu maskieren. Ich habe eine Spalte mit dieser Aussage maskiert:SQL Server-Datenmaskierung Mindestberechtigungen zum Maskieren erforderlich

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

Und ich kann in sys.columns sehen, dass dies nun maskiert.

Jetzt in der Anwendung werden die Daten nicht als maskiert angezeigt (auch nicht in der Datenbank, wenn sie als Benutzer angemeldet sind). Ich habe auch den folgenden Befehl ausgeführt, um sicherzustellen, dass der Benutzer diese Berechtigung nicht hat.

Kann jemand empfehlen, was die minimalen Berechtigungen benötigt werden, damit die Datenmaskierung wie erwartet funktioniert.

Vielen Dank im Voraus

Antwort

2

Sie zu DENY UNMASK auf sysadmin und db_owner nicht in der Lage sind. Dies ist eine eingebaute Beschränkung.

Wie in der Dokumentation erwähnt, ist dies kein security Feature, wenn der Benutzer die Tabelle abfragen kann.

Wie im Beispiel der Dokumentation zeigt, brauchen Sie nicht REVOKE UNMASK zu gewähren, wie es standardmäßig eingestellt ist:

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', '[email protected]'), 
('Janice', 'Galvin', '555.123.4568', '[email protected]'), 
('Zheng', 'Mu', '555.123.4569', '[email protected]'); 
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; 

und Sie können nicht REVOKE UNMASK zu sysadmin und db_owner.

Verwandte Themen