Enmascaramiento Dinámico de Datos en SQL Server

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

ENMASCARAMIENTO DINÁMICO DE DATOS EN SQL SERVER

Por: Nelson López


Contenido
1. ¿Qué es el enmascaramiento? .................................................................................................................. 3
2. Tipos de enmascaramiento ....................................................................................................................... 3
2.1 Enmascaramiento predeterminado ................................................................................................... 3
2.2 Enmascaramiento aleatorio ................................................................................................................ 3
2.3 Enmascaramiento de correo electrónico ............................................................................................ 3
2.4 Enmascaramiento parcial.................................................................................................................... 3
3. Ejemplo ilustrativo .................................................................................................................................... 4
3.1 Agregar o editar una máscara en una columna existente .................................................................. 5
3.2 Otorgar permisos para ver datos sin máscara .................................................................................... 5
3.3 Quitar una máscara ............................................................................................................................. 5
4. Ejercicio propuesto ................................................................................................................................... 5
5. Ejercicio propuesto ................................................................................................................................... 6
6. Referencias bibliográficas ......................................................................................................................... 6
1. ¿Qué es el enmascaramiento?
El enmascaramiento dinámico de datos (DDM) limita la exposición de datos confidenciales a usuarios sin
privilegios de poder ver dichos datos. Se puede utilizar para simplificar en gran medida el diseño y la
codificación de la seguridad en su aplicación (Microsoft, 2019).

El enmascaramiento dinámico de datos no modifica los datos reales almacenados en una tabla; aplica las
funciones de enmascaramiento en la columna de la tabla en el momento de devolver los datos como
resultado de una consulta (por eso hace referencia a enmascaramiento dinámico).

2. Tipos de enmascaramiento
El enmascaramiento dinámico de datos admite cuatro funciones de enmascaramiento de datos, como se
indica a continuación, con las que puede enmascarar los datos en el nivel de base de datos:

 Enmascaramiento predeterminado
 Enmascaramiento de correo electrónico
 Enmascaramiento aleatorio
 Enmascaramiento parcial

2.1 Enmascaramiento predeterminado

Oculta los datos basándose en el tipo de datos de la columna.

 Si el tipo de datos es fecha y hora, a continuación, muestra los datos en 1900-01-01 00:00:00.000
formatos.
 Si el tipo de datos es numérico, entonces muestra un 0.
 Si el tipo de datos es cadena, a continuación, muestra los datos agregando XS en la cadena.

2.2 Enmascaramiento aleatorio

Se aplica únicamente a los tipos de datos numéricos. Muestra un valor aleatorio para el rango
especificado.

2.3 Enmascaramiento de correo electrónico

Mostrará el primer carácter de una dirección de correo electrónico, enmascarando el resto de los
caracteres con XXX @ XXXX hasta el sufijo”. com". Por ejemplo, si aplicamos la función de correo
electrónico para una dirección de correo electrónico como [email protected], a continuación, esta dirección
de correo electrónico aparecerá como "[email protected] ".

2.4 Enmascaramiento parcial

Mostrará la primera y la última letra y agrega una cadena de relleno en el medio (prefijo, [relleno], sufijo).
3. Ejemplo ilustrativo
Crear la siguiente base de datos:
USE [MASTER]
GO
DROP DATABASE IF EXISTS [BD_MASK]
GO
CREATE DATABASE [BD_MASK]
GO
USE [BD_MASK]
GO
CREATE TABLE Membership
(
MemberID int IDENTITY PRIMARY KEY,
AnotherID int MASKED WITH (FUNCTION ='Random(1,4)') NULL, -- ALETAROIO ENTRE 1 Y 4
FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)') NULL, -- PARCIAL
(mostrara la primera letra,"RELLENO = XXXXXXX", no mostrara la última letra)'
LastName varchar(100) NOT NULL,
Phone varchar(12) MASKED WITH (FUNCTION = 'default()') NULL, -- PREDETERMINADO
Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL); -- EMAIL
GO
INSERT Membership (AnotherID, FirstName, LastName, Phone, Email) VALUES
(454545, 'Roberto', 'Tamburello', '555.123.4567', '[email protected]'),
(124545, 'Janice', 'Galvin', '555.123.4568', '[email protected]'),
(254545, 'Zheng', 'Mu', '555.123.4569', '[email protected]');

Ahora proceda a crear un usuario de prueba y a realizar una consulta de prueba sobre la tabla Membership
con el siguiente script:
USE [BD_MASK]
GO
CREATE USER TestUser WITHOUT LOGIN;
GRANT SELECT ON Membership TO TestUser;

USE [BD_MASK]
GO
EXECUTE AS USER = 'TestUser';
SELECT * FROM Membership;
REVERT;

Resultado
3.1 Agregar o editar una máscara en una columna existente

Utilice la instrucción ALTER TABLE para agregar una máscara a una columna existente de la tabla o para editar la máscara en esa
columna.

En el ejemplo siguiente se agrega una función de enmascaramiento a la columna LastName:

ALTER TABLE Membership


ALTER COLUMN LastName ADD MASKED WITH (FUNCTION = 'partial(2,"XXX",0)');

En el ejemplo siguiente se cambia una función de enmascaramiento en la columna LastName:

ALTER TABLE Membership


ALTER COLUMN LastName varchar(100) MASKED WITH (FUNCTION = 'default()');

3.2 Otorgar permisos para ver datos sin máscara

La concesión del permiso UNMASK permite a TestUser ver los datos desenmascarados.

GRANT UNMASK TO TestUser;


EXECUTE AS USER = 'TestUser';
SELECT * FROM Membership;
REVERT;

-- Removing the UNMASK permission


REVOKE UNMASK TO TestUser;

3.3 Quitar una máscara

La siguiente instrucción descarta la máscara en la columna LastName creada en el ejemplo anterior:

ALTER TABLE Membership


ALTER COLUMN LastName DROP MASKED;

4. Ejercicio propuesto
Crea una base de datos llamada BD_MASK2 con la siguiente tabla y aplicar todo lo anterior:
5. Ejercicio propuesto
Aplicar enmascaramiento dinámico a por lo menos 3 tablas de la base de datos del proyecto (3 tablas que usted considere
apropiadas para aplicar enmascaramiento dinámico).

6. Referencias bibliográficas
 Microsoft. (2019, January 5). Dynamic Data Masking. Retrieved May 2, 2019, from https://docs.microsoft.com/en-
us/sql/relational-databases/security/dynamic-data-masking?view=sql-server-2017

 Medium. (2018, August 30). Dynamic Data Masking in SQL Server. Retrieved May 9, 2019, from
https://medium.com/geopits/dynamic-data-masking-in-sql-server-ffe823f3ad99

También podría gustarte