1. Enmascaramiento Dinámico de Datos (DDM)

¿Qué es DDM?

El enmascaramiento dinámico de datos (DDM) es una característica de seguridad que oculta información confidencial en tiempo real, sin alterar los datos almacenados.

Ventajas del DDM:

  • Enmascaramiento en tiempo real: Evita que usuarios no autorizados accedan a datos sensibles.
  • Fácil implementación: No requiere codificación compleja.
  • Los datos no cambian: Se aplican reglas de enmascaramiento solo a los resultados de las consultas.

  

Ejemplo de configuración en SQL:

 


2. Seguridad de Nivel de Fila (RLS)

¿Qué es RLS?

La Seguridad a Nivel de Fila (RLS) restringe el acceso a filas específicas de una tabla según el usuario que realiza la consulta.

Ejemplo de uso:

  • Un vendedor solo debe ver los pedidos de sus propios productos.
  • Un cliente solo debe acceder a sus propios datos.

Cómo funciona RLS:

  • Se usa una función de predicado de seguridad, que devuelve TRUE o FALSE dependiendo del usuario.
  • SQL Server aplica automáticamente esta función a cada consulta.

Implementación en SQL:

  

Casos de uso:

  • Aislamiento de datos por departamento.
  • Restricción de acceso de clientes a datos relevantes.
  • Cumplimiento de normativas de privacidad.

Recomendación: Crear un esquema separado para funciones de predicado y directivas de seguridad para mejor mantenimiento.


3. Seguridad de Nivel de Columna (CLS)

¿Qué es CLS?

La Seguridad de Nivel de Columna (CLS) restringe el acceso a columnas específicas de una tabla, protegiendo datos confidenciales.

Ejemplo en sector salud:

  • Tabla: Patients
  • Columnas sensibles: MedicalHistory
  • Acceso: Solo para médicos y enfermeras.

Configuración de CLS en SQL:

 

 

Comparación: CLS vs. Vistas

 



4. Permisos Granulares en SQL

Permisos de Tablas y Vistas

  

.


5. Principio del Menor Privilegio

Concepto:

  • Los usuarios solo deben tener los permisos necesarios para realizar sus tareas.
  • Ejemplo: Una aplicación que accede a datos solo a través de procedimientos almacenados no debe tener acceso directo a las tablas.


6. SQL Dinámico y Seguridad

¿Qué es SQL Dinámico?

Permite generar consultas en tiempo de ejecución, lo que aumenta la flexibilidad, pero también el riesgo de inyección SQL.

Ejemplo seguro de SQL dinámico: