Una de las mejores características de un buen profesional es que siempre busca formas de hacer su trabajo más eficiente y efectivo. Los administradores de base de datos no estamos exentos de esta norma y, una de las herramientas que tenemos a nuestra disposición para lograr esto es el uso de políticas en SQL Server. Si no habías oído hablar antes de esto no te preocupes, es una opción de SQL Server a menudo subestimada pero al final de este artículo vas a poder ver su gran potencial. Durante las próximas líneas explicaremos cómo las políticas pueden facilitarnos la vida a la hora de gestionar nuestras bases de datos, garantizando tanto el cumplimiento de normas como la eficiencia y el buen rendimiento.
Imaginemos un escenario donde gestionamos múltiples instancias de SQL Server, cada una con sus propias configuraciones, niveles de seguridad y requisitos de rendimiento. No es dificil verdad, es nuestro pan de cada día. Sabrás entonces que mantener la coherencia y el cumplimiento normativo en un entorno así puede ser una tarea exigente. Pues bien, aquí es donde las políticas de administración de SQL Server entran en juego y nos permiten definir, aplicar y automatizar reglas y directrices de una manera estructurada y eficiente.
¿Qué son las Políticas en SQL Server?
Las políticas en SQL Server son un componente del Policy-Based Management (PBM), introducido por primera vez en SQL Server 2008. Esta funcionalidad nos permite definir reglas y condiciones para nuestros servidores y bases de datos, asegurando que cumplan con ciertos estándares de configuración y rendimiento. En términos simples, una política es un conjunto de reglas que se aplican a los objetos de SQL Server para garantizar que se comporten de una manera específica. Estas reglas pueden abarcar desde la configuración del servidor hasta el diseño de la base de datos, y pueden ayudarnos a mantener un alto nivel de calidad y consistencia en nuestras bases de datos.
Por ejemplo, podríamos crear una política que fuerce a que todas las tablas tengan una PK (clave primaria). Esta política se aplicaría a todas las bases de datos en el servidor, y cualquier usuario intente crear una tabla sin PK recibiría un bonito error.
Otra política común es obligar a que todas las bases de datos tengan copias de seguridad regulares. Esta política la podremos configurar para verificar que se haya realizado un backup en las últimas 24 horas, y si no es así, que genere una alerta (que nos envía un correo) para que nosotros como administradores de la base de datos tomemos medidas.
Las políticas también nos pueden ser útiles para mantener la seguridad de nuestras bases de datos. Podríamos tener una política que fuerce a que todas las conexiones al servidor se realicen a través de una conexión segura, o que todas las contraseñas cumplan con ciertos requisitos de complejidad
Componentes Clave de una Política
Antes de ver cómo tenemos que hacer para crear una política personalizada tenemos que tener claros una serie de conceptos que vamos a necesitar. En concreto vamos a estar trabajando con condiciones, facetas y modos de evaluación además de las propias políticas. Veamos que son cada uno de ellos.
- Condición (Condition): Una condición es un conjunto de expresiones que definen un estado deseado o un comportamiento que queremos comprobar. Por ejemplo, podríamos tener una condición que verifique si la recuperación de base de datos está configurada como «FULL».
- Facetas (Facets): Las facetas son conjuntos predefinidos de propiedades de los objetos de SQL Server. Por ejemplo, hay facetas para bases de datos, servidores, procedimientos almacenados, entre otros. Cada faceta contiene varias propiedades que podemos utilizar en nuestras condiciones.
- Política (Policy): Una política combina una condición con una faceta y define cómo y cuándo se debe evaluar esta combinación. Las políticas pueden ser evaluadas bajo demanda, de forma programada o en respuesta a eventos específicos.
- Modo de Evaluación (Evaluation Mode): Este define cuándo y cómo se evaluará una política. Existen varios modos, incluyendo «On Demand», «On Schedule», «On Change – Prevent» y «On Change – Log Only».
Creando y Administrando Políticas
Para implementar políticas en SQL Server, utilizamos la característica de Administración Basada en Políticas (PBM, por sus siglas en inglés). Como ya hemos visto, PBM nos permite definir políticas, verificar su cumplimiento y aplicarlas automáticamente. Lo primero que deberemos hacer es definir una condición. Una vez que hayamos definido una condición, ya podremos crear una política que utilice esa condición. Por último definiremos su modo de evaluación.
Paso 1: Definir una Condición
El primer paso para crear una política es definir una condición. Supongamos que queremos asegurarnos de que todas nuestras bases de datos estén en modo de recuperación FULL. Para ello, primero definimos una condición:
Abrimos SQL Server Management Studio (SSMS) y navegamos hasta «Management» -> «Policy Management». Hacemos clic derecho en «Conditions» y seleccionamos «New Condition». Le damos un nombre a nuestra condición, por ejemplo, «Database Recovery Full». En «Facet», seleccionamos «Database». En «Expression», añadimos una nueva condición: @RecoveryModel = ‘FULL’.
Paso 2: Crear la Política
Con la condición definida, procedemos a crear la política que la usará:
Hacemos clic derecho en «Policies» y seleccionamos «New Policy». Le damos un nombre, como «Ensure Full Recovery Mode». Asignamos la condición «Database Recovery Full» que creamos anteriormente. En «Against Targets», especificamos los objetos a los que se aplicará esta política, en este caso, todas las bases de datos. Elegimos el modo de evaluación. Para este ejemplo, seleccionamos «On Change – Log Only» para registrar cualquier incumplimiento sin impedir cambios.
Paso 3: Evaluar y Aplicar la Política
Una vez creada la política, podemos evaluarla inmediatamente:
Hacemos clic derecho en la política y seleccionamos «Evaluate». SQL Server nos mostrará todas las bases de datos que no cumplen con la política. Podemos tomar acciones correctivas directamente desde el cuadro de diálogo de evaluación si es necesario.
Paso Extra: Exporta tus políticas
Cuando ya tengas todas tus políticas creadas en uno de tus servidores, no es necesario que las recrees en el resto, simplemente podemos exportarlas y volverlas a importar en tantos servidores como queramos. Para ello solo tendremos que dar clic derecho sobre nuestra política y dar a exportar. Para importar haremos clic derecho sobre la carpeta políticas en nuestro SSMS y le daremos a importar política.
Beneficios del Uso de Políticas
Como venimos comentando, las políticas nos permiten estandarizar configuraciones y prácticas en todas nuestras instancias de SQL Server. De esta manera vamos a lograr asegurar el cumplimiento de normas corporativas y regulatorias. Esto es especialmente importante en entornos que deben cumplir estándares y leyes como GDPR, HIPAA o SOX.
Además, al definir políticas que se evalúan automáticamente, podemos reducir nuestra carga de trabajo y minimizar el riesgo de errores humanos. Por ejemplo, podemos programar evaluaciones periódicas para asegurar que todas nuestras configuraciones de seguridad y rendimiento se mantengan conforme a las políticas definidas.
Pero esto no es todo, las políticas también nos ayudan a identificar y corregir problemas potenciales antes de que se conviertan en problemas mayores. Al tener visibilidad continua de cómo se comportan nuestros servidores y bases de datos en relación con nuestras políticas, podemos ser proactivos en la gestión y el mantenimiento.
Conclusión
El uso de políticas para administrar SQL Server es una práctica que nos permite mantener el control y la coherencia en nuestros entornos de bases de datos. Al definir y aplicar políticas claras, podemos asegurar el cumplimiento normativo, automatizar tareas administrativas y mantener un alto nivel de rendimiento y seguridad. En resumen, las políticas no solo simplifican la administración de SQL Server, sino que también nos permiten ser más eficientes en nuestro trabajo como DBAs. Así que, no esperes más. Pruébalo y considera aprovechar el poder de las políticas para facilitarte la vida.
Si tenéis alguna duda o sugerencia, podéis dejarla en Twitter, por mail o dejarnos un mensaje en los comentarios. Y recuerda que también tenemos un grupo de Telegram y un canal de YouTube a los que te puede unir. ¡Hasta la próxima!


[…] el trabajo. Esto último te lo muestro en el artículo de la semana pasada que puedes encontrar aquí. No esperes más y toma el control de tus servidores. Usa estas políticas para mantener la […]