Este documento proporciona un resumen de varias nuevas características de SQL Server 2016 como Dynamic Data Masking, Row Level Security, Always Encripted y Grupos de Disponibilidad Always On. Dynamic Data Masking permite enmascarar datos sensibles para usuarios sin privilegios. Row Level Security controla el acceso a filas de una tabla dependiendo del usuario. Always Encripted permite encriptar datos sensibles sin revelar las claves de encriptación. Los Grupos de Disponibilidad Always On reemplazan al mirroring y permiten failover entre nodos de un cluster.
2. EN CUMPLIMIENTO CON LA LEY 15/1999 DE PROTECCIÓN DE DATOS DE CARÁCTER PERSONAL,
PONEMOS EN TU CONOCIMIENTO QUE
ESTE EVENTO VA A SER GRABADO
· Dichas grabaciones serán utilizadas por SolidQ, bien para uso interno o bien para la creación
de material de marketing con el fin de promocionar nuestra marca.
3. Otras Novedades SQL Server 2016
• Introducción
• Dynamic Data Masking
• Row Level Security
• Always Encripted
• Grupos de Disponibilidad Always On
4. Dynamic Data Masking
DDM
Sirve para limitar la cantidad de datos sensibles que se exponen a
usuarios sin privilegios
Nos evita tener que ofuscar los datos en las aplicaciones
Aplica esta seguridad en las importaciones / exportaciones
La máscara no se muestra con el permiso UNMASK
5. Dynamic Data Masking
• Default, sustituye el contenido por “xxxx”
independientemente de la longitud
• Email, expone la primera letra del email y .com (aunque no
sea su extensión
• Custom String, muestra N caracteres al principio + ‘literal’ + N
caracteres al final
• Random, para números, reemplaza el valor por un numero
aleatorio, se le especifica un rango
Tipos de Máscara
6. Dynamic Data Masking
• Tarjetas de Credito
• Cuentas Bancarias
• Teléfonos
• Nombre o apellidos
• Salarios
Usos
7. Dynamic Data Masking
Limitaciones y Restricciones
No se puede aplicar a:
Columnas Encriptadas
Columnas de FileStream
Sparse Columns / Columns_Sets
Computed Colums
8. Row Level Security
• Permite controlar el acceso a las celdas de una tabla
dependiendo de quien realiza la consulta
• Simplifica y reduce la codificación de seguridad de las
aplicaciones
• Las restricciones sobre los datos se encuentran en la bbdd
• Las restricciones se aplican cuando se intenta el acceso a los
datos independientemente de donde venga la petición
RLS
9. Row Level Security
• Aplicaciones de Seguridad donde los jefes directos solo pueden
ver los nombres / lesiones de los empleados
• Aplicaciones que trabajen con datos sensibles
• Salud
• Religion
• Afiliación Política / Sindical
• Para restringir la visibilidad conforme a un organigrama
(departamentos) / geografía
Usos
10. Row Level Security
Tipos de Predicados
Filter
SELECT
UPDATE
DELETE
Block
Bloquean operaciones escritura
AFTER INSERT
AFTER UPDATE
BEFORE UPDATE
BEFORE DELETE
11. Row Level Security
• El acceso a los datos es restringido por una función “inline”
• La función es invocada por una política de seguridad
• Si en predicado de filtro se filtran todas las filas no devolverá
nada
• En los predicados “block” cualquier operación que viole el
predicado provocará un error
• AFTER INS/UPD previenen de modificaciones sobre datos que cumplen
el predicado
• BEFORE UPD/DEL previenen de modificaciones/borrados sobre datos
que no cumplen el predicado
Funcionamiento Predicados
12. Row Level Security
• Seguridad
• Separar en un esquema los objetos RLS
• Una cosa es administrar las politicas y otra ver los datos, el
administrador no tiene porque ver datos
• Limitar el nº de personas que pueden cambiar la politica de seguridad
• Pensar bien los predicados de seguridad
• Por deducción negativa también se consigue información aunque no sea precisa
o de error
• Rendimiento
• Evitar conversiones en los predicados
• Evitar recursividad entre funciones
• Evitar joins
Buenas Prácticas
13. Row Level Security
• Tablas in memory
• DBCC Show Statistics El usuario debe ser el propietario de la
tabla sino se aplicacaría el filtro menos registros
información falsa
• Vistas anidadas aplicarlo en la vista final
• CDC y CT compatible con administradores, ya que con
usuarios se les aplique filtro y habría cambios que podrían
escaparse
• Full Text Afecta al rendimiento, filtro extra
• ColumnStore Index, compatible pero si el filtro restringe
mucho podría no usar el modo batch
Compatilibilidad Con Otras Tecnologías
14. Row Level Security
• Temporal tables Aplicar politicas a tabla actual e histórica
• Vistas Particionadas Block predicates no
• FileStream No
• Polybase No
Compatilibilidad Con Otras Tecnologías
15. Always Encripted
• Sirve para proteger datos sensibles
• Permite a los cliente encriptar datos sensibles de sus apps y
guardalos en SQL Server sin relevelarle nunca las claves ni
tener la capacidad de ver esos datos sensibles
• Separación Entre:
• Quienes son propietario de los datos y pueden verlos
• Quienes los administran
• Es transparente para las aplicaciones
• Se instala driver en cliente y en el servidor para encriptar y
desencriptar
• Exige Collation Binary2
Separación
16. Always Encripted
• Una empresa con datos sensibles quiere externalizar el servicio de
gestión / parametrización de las instancias SQL Server necesita
asegurarse que la empresa que le presta el servicio no puede leer
el contenido
• Almacenamiento de contenido sensible que solo puede ser conocido
por determinada parte de la empresa
• Cartera de clientes importantes
• Famosos
• Deportistas
• Información politica, religiosa, médica
• Para pasar bbdds de produccion a entornos de preproducción/
desarrollo
Separación
17. Always Encripted
Tipo Deterministic
Separación
¿Qué es?
•Genera el mismo valor de encriptacion para un texto dato
Ventaja
•Rapidez, permite agrupar, join y filtrado por igualdad basandose en valores encriptados
Desventaja
•Los usuarios pueden sacar patrones de encriptación especialmente con conjuntos de datos con valores
discretos:
•T/F
•Estados
18. Always Encripted
Tipo Randomized
Separación
¿Qué es?
• No genera el mismo valor encriptado para un texto dado
Ventaja
• Seguridad
Desventaja
• Más lento, impide agrupar, join y filtrado por igualdad basandose en valores encriptados
• Usar este tipo de encriptación para datos sobre los que no se haga ese tipo de operaciones
19. Always Encripted
Keys
Separación
Column Encryption Keys
• Encriptan datos almacenados en columnas de la bbdd
• Todos los valores de la columna usan una única clave de cifrado
• Los valores encriptados de las claves de encriptacion de columnas son
almacenamos en vistas de catalogo
• Realizar backup de ellas y almacenarlas en un lugar seguro
Column Master Keys
• Protegen las claves usadas para encriptar column encryption keys
• La informacion incluida su localizadción esta almacenada en vistas de catalogo
20. Always Encripted
• Rol Principal asegura la transparencia de la encriptación para
aplicaciones clientes
1. Driver hace llamadas de ida y vuelta al servidor por cada query con parametros
para:
• Saber si tiene que encriptar
• Como debe ser encriptado
2. SQL Server envía:
1. Información de encriptación de las columnas
2. Clave de encriptacion de la clave de las columnas encriptadas
3. Localización de la column master key
3. Se devuelve la informacion junto con metadatos que permiten la desencriptación
Driver
Separación
21. Always Encripted
Funcionamiento
Separación
1
• Crear clave/s Column Master Key
• Crear clave/s Column Encrypted Key vinculandolas a la CMK
2
• Backups del certificado
• Importar el certificado en los equipos clientes
3
• En SSMS/Additional Connection Parameters incluir:
• column encryption setting=enabled
22. Always Encripted
• Select con parámetros, Inserciones, Modificaciones se tienen
que hacer desde una aplicación .NET 4.6. No se permiten ad
hoc “select * from t where nombre = ‘luis’"
• Solo se permiten predicados de igualdad y en columnas con
encriptación determinista
• No permitido > < >= <= like
• Los joins solo se permiten con columnas deterministas si
tienen el mismo tipo de encryptacion
• Solo se permiten índices en columnas deterministas
Limitaciones Generales
Separación
23. Always Encripted
• No se permiten los siguientes tipos, IDENTITY,
text/ntext/image, XML/hierarchyid/geography/geometry,
alias types/user-defined data types SQL_VARIANT, rowversion
(timestamp), Computed columns, Sparse columns e in-memory
tables (hekaton)
• No se pude modificar una columna y encriptarla, tienes que
añadir una nueva columna e importar los datos
Limitaciones Generales
Separación
24. Always Encripted
• No compatible con CDC pero si con CT
• No compatible con replicación
• No compatible con tablas temporales de SQL Server 2016
• Los triggers pueden fallar si trabajan con columnas
encriptadas
Compatibilidad Con Otras Tecnologías
Separación
25. Grupos de Disponibilidad Always On
• Reemplazan a Mirroring
• Grupos de Disponibilidad de 2 nodos de cluster con la edición
SQL Server Standard
• Soporta failover de una única base de datos
• Replicación Sincrona / Asíncrona
• La segunda réplica permanece inactiva hasta que se produce
un failover
Grupos Disponibilidad Básicos
26. Grupos de Disponibilidad Always On
• No se permiten en la réplica secundaria:
• Lecturas
• Backups
• No esta soportado añadir o quitar replicas a un grupo existente
básico
Grupos Disponibilidad Básicos
27. Grupos de Disponibilidad Always On
• Cuando se establece el vinculo entre ambos el AG2 pasa a ser
de solo lectura
Grupos de Disponibilidad Distribuidos
28. Grupos de Disponibilidad Always On
• Grupos independientes de dominios
• Necesidad, algunas empresas tienen varios dominios
• Hay entornos que no trabajan con Active Directory, es decir sin
dominios
• El número de réplicas sincronas se ha aumentado a 3
• FailOvers Automático, Manual, Forzado
• Conjugar según necesidades para priorizar
• En funcion de la distancia, ancho de banda de las comunicaciones
• Si alguno está en manteniento
• Usarlo con precaución, impacta en el rendimiento, depende de:
• Carga
• Comunicaciones, (ancho de banda y distancia)
Otros
29. Grupos de Disponibilidad Always On
• Soporta TDE Databases
• Failover cuando una bbdd se pone offline
• Problema en SQL Server 201/2-4 el grupo no hacía failover si una
bbdd se ponía offline
• Cuentas de servicio autogestionadas
• Soporta transacciones distribuidas
• Balanceo de Carga en Réplicas Secundarias
Otros
30. También puedes preguntar tus dudas con el
hashtag #SQSummit en Twitter
ADAPTIVE BI FRAMEWORK
Te ayudaremos a mejorar la velocidad de desarrollo de tu plataforma de analítica de negocio basada
en nuestra experiencia:
•Diseña antes de construir
•Automatización de procesos por ETL
•Servicios de mentoring para ayudarte a conseguir mejores prácticas para la construcción de procesos específicos y
plataformas de analítica de negocio
•Muy fácil de mantener
SOLIDQ FLEX SERVICES
Con SolidQ Flex Services evitarás sustos, consiguiendo que tus sistemas sean estables. Desde una
solución sencilla de monitorización, hasta un servicio de atención de incidencias 24/7,
mantenimiento proactivo, resolución de problemas y línea de soporte.
Todo con un coste fijo mensual… y tú dedica el tiempo a las cosas importantes.