SQL Server DYNAMIC DATA MASKING
SQL Server DYNAMIC DATA MASKING is a SQL statement in the SQL Server Specific category. SQL Server 2016+: dynamic data masking hides sensitive data from non-privileged users without changing the data. The syntax is ALTER TABLE t ALTER COLUMN col ADD MASKED WITH (FUNCTION = 'default()');. It returns masked column. A typical example: CREATE TABLE customers ( id INT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100) MASKED WITH (FUNCTION = 'email()'), phone VARCHAR(20) MASKED WITH (FUNCTION = 'partial(2,"****",2)'), ssn CHAR(11) MASKED WITH (FUNCTION = 'default()') ); INSERT INTO customers VALUES (1, 'Alice Smith', 'alice@email.com', '555-123-4567', '123-45-6789'); -- Unprivileged user sees: -- name: Alice Smith -- email: aXXX@email.com (email mask) -- phone: 55****67 (partial mask) -- ssn: XXXX (default mask) -- Privileged user (WITH UNMASK):… A close relative is OUTPUT Clause, which sQL Server: returns values from DML statements (like PostgreSQL RETURNING). A close relative is STUFF(), which sQL Server: deletes a specified length of characters from a string and inserts another string at the start position.