SQL Server Master Data Services es un servicio de SQL Server que sirve para administrar datos maestros (MDM). Fue lanzado por primera vez con SQL Server 2008R2, y mejorado posteriormente con SQL Server 2012. No hubo cambios en MDS con SQL Server 2014 pero en este año 2016 sí que ha habido algunos. No se trata de cambios muy importantes pero muestran la evidencia de que Microsoft va a invertir en estos servicios.
Vamos a ver algunos tips que te ayudarán a entender las novedades de SQL Server Master Data Services 2016.
Controlando el mantenimiento de los logs de transacciones
SQL Server Master Data Services tiene ahora un control de configuración para limpiar los logs de transacciones. Puedes hacerlo a intervalos predeterminados o determinando la frecuencia en un calendario de programación.
Si tu SQL Server Master Data Services cambia con mucha frecuencia, las tablas aumentan de forma exponencial y pueden causar problemas de rendimiento y espacio. La limpieza de logs puedes hacerla ahora de esta forma:
- Eliminando el historial de transacciones anterior a la cantidad de días que indiques.
- Eliminando el historial de problemas de validación anterior a la cantidad de días que indiques.
- Eliminando los lotes que se ejecutaron antes de la cantidad de días que indiques.
Compresión de datos para Entidades
Con SQL Row Level Security ahora puedes comprimir los datos de la entidad y sus índices a un muy buen nivel. De esta forma minimizamos las operaciones de entrada/salida. Esto es especialmente útil cuando el rango de valores de datos no es muy amplio. Sin embargo puedes tener un problema de CPU ya que aumenta ligeramente su uso cuando habilitas esta compresión.
Pestaña de Dependencias de entidad en el explorador Web
En la versión anterior de SQL Server Master Data Services podías crear las relaciones entre entidades a través de un add-in de Excel, pero no había manera de verlo después mediante la interfaz Web de usuario. En esta nueva versión de SQL Server Master Data Services tienes una pestaña en el explorador MDS que sirve para esto.
Permisos de superusuario
La función de superusuario es el nuevo permiso en SQL Server Master Data Services 2016. Este permiso funciona como Server Admin. ¿Para qué existe este permiso? En las versiones anteriores de MDS el Server Admin era la persona que originalmente configuraba el MDS y no había forma de cambiarlo después. Si esa persona dejaba la compañía este permiso debería asignarse a otra persona. Pero no había forma de cambiarlo a través de la interfaz de usuario. Los cambios debían hacerse directamente en las tablas. Con esta nueva característica este problema queda resuelto.
Otros tips de permisos
Mejora la aplicación de permisos
Debido a la naturaleza de SQL Server Master Data Services, hay un lapso de tiempo entre la configuración de un permiso, y que el permiso se aplique a un usuario o a un grupo. De forma predeterminada, a través del Master Data Services Configuration Manager, el tiempo de retraso es de 3600 segundos, o lo que es lo mismo, 60 minutos. Sin embargo, puedes hacer que los permisos se apliquen de inmediato llamando al procedimiento almacenado «[MDM]. [UdpSecurityMemberProcessRebuildModel]»
Los permisos menos permisivos son dominantes
SQL Server Master Data Services 2016 ofrece 5 principales niveles de permisos para los objetos: Leer, crear, actualizar, eliminar, y denegar. Lo que debes tener en cuenta es que los permisos menos permisivos son los que “mandan”. Por ejemplo, si a un usuario se le concede acceso de escritura a una entidad, pero solo acceso de lectura en ciertos filas de esa entidad, lo que ocurre es que los permisos de escritura se anulan y se sustituyen por los permisos de lectura en las filas de que se trate. Es decir, los permisos se superponen y hacen caso omiso de la jerarquía. Parece obvio pero merece la pena ser consciente de eso.
Los permisos pueden ser inferidos
Esto quiere decir que si se asignan permisos a una entidad específica, siempre y cuando el usuario tenga permisos de exploración funcional, el usuario podrá acceder a esa entidad. En SQL Server Master Data Services no necesitas dar permisos al usuario a nivel de modelo.