Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)

146 views

Published on

http://summit.solidq.com
En esta sesión verá otras novedades de SQL Server 2016, no tan publicitadas en su lanzamiento. Trataremos las novedades en cuestiones de seguridad y Grupos de Disponibilidad.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)

  1. 1. #SQSummit Otras Novedades SQL Server 2016 Luis José Morán Cuenca lmoran@solidq.com Data Platform Architect
  2. 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. 3. Otras Novedades SQL Server 2016 • Introducción • Dynamic Data Masking • Row Level Security • Always Encripted • Grupos de Disponibilidad Always On
  4. 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. 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. 6. Dynamic Data Masking • Tarjetas de Credito • Cuentas Bancarias • Teléfonos • Nombre o apellidos • Salarios Usos
  7. 7. Dynamic Data Masking Limitaciones y Restricciones No se puede aplicar a: Columnas Encriptadas Columnas de FileStream Sparse Columns / Columns_Sets Computed Colums
  8. 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. 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. 10. Row Level Security Tipos de Predicados Filter SELECT UPDATE DELETE Block Bloquean operaciones escritura AFTER INSERT AFTER UPDATE BEFORE UPDATE BEFORE DELETE
  11. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

×