Published on

January 17, 2019

Explorando la enmascaramiento de datos dinámica en SQL Server

La enmascaramiento de datos dinámica es una característica poderosa en SQL Server que le permite proporcionar una máscara para ciertos usuarios cuando acceden a datos protegidos. En este artículo, exploraremos el concepto de enmascaramiento de datos dinámica y cómo se puede utilizar en SQL Server.

¿Qué es el enmascaramiento de datos dinámica?

El enmascaramiento de datos dinámica es una característica de seguridad introducida en SQL Server que le permite definir reglas de enmascaramiento para datos sensibles. Ayuda a proteger la información sensible enmascarando dinámicamente los datos según los permisos del usuario. Esto significa que ciertos usuarios verán datos enmascarados mientras que otros con privilegios más altos verán los datos reales.

Aplicación del enmascaramiento de datos

Aplicar el enmascaramiento de datos en SQL Server es un proceso sencillo. Puede utilizar la instrucción ALTER TABLE para agregar una máscara a una columna específica. Por ejemplo:

ALTER TABLE Usuarios 
ALTER COLUMN Ubicacion 
ADD MASKED WITH (FUNCTION = 'default()')

En el ejemplo anterior, agregamos una máscara predeterminada a la columna “Ubicacion” en la tabla “Usuarios”. La función “default()” se utiliza para aplicar una máscara predefinida. Desafortunadamente, no se pueden definir máscaras personalizadas en este momento.

Visualización de datos enmascarados en los planes de ejecución

Un aspecto interesante del enmascaramiento de datos dinámica es que se pueden ver las máscaras en los planes de ejecución. Veamos un ejemplo:

SELECT Ubicacion
FROM Usuarios as u
WHERE u.Reputacion = 1001

Cuando se ejecuta la consulta anterior por un administrador, el plan de ejecución mostrará los datos reales. Sin embargo, cuando la misma consulta se ejecuta por un usuario con privilegios limitados, el plan de ejecución mostrará los datos enmascarados.

Resultados intermedios y enmascaramiento de datos

Es importante tener en cuenta que al utilizar el enmascaramiento de datos dinámica con almacenamiento de resultados intermedios, como tablas temporales, puede haber un comportamiento inesperado. Consideremos el siguiente escenario:

SELECT Ubicacion
INTO #temp
FROM Usuarios as u
WHERE u.Reputacion = 1001

SELECT * FROM #temp
WHERE Ubicacion = 'Suiza'

DROP TABLE #temp;

En el ejemplo anterior, cuando la consulta se ejecuta por un usuario con privilegios limitados, no se devuelven filas. Esto se debe a que el enmascaramiento se aplica durante la recuperación de datos de la tabla temporal. Sin embargo, cuando la misma consulta se ejecuta por un administrador, el enmascaramiento no se aplica a la tabla temporal, lo que resulta en la devolución de la fila esperada.

Conclusión

El enmascaramiento de datos dinámica es una característica poderosa en SQL Server que le permite proteger datos sensibles enmascarándolos dinámicamente según los permisos del usuario. Proporciona una capa adicional de seguridad y ayuda a prevenir el acceso no autorizado a información sensible. Sin embargo, es importante tener en cuenta las posibles implicaciones al utilizar el enmascaramiento de datos con almacenamiento de resultados intermedios, como tablas temporales.

Gracias por leer este artículo sobre el enmascaramiento de datos dinámica en SQL Server. ¡Estén atentos para más artículos sobre conceptos e ideas de SQL Server!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.