SQL Server 2008: Policicy Based Management!

Siguiendo con los posts sobre algunas de las novedades sobre SQL Server 2008, en esta ocasión voy a hablaros de Policy Based Management (PBM). Se trata de una nueva característica que facilita la administración de SQL Server 2008 a través de la definición de una serie de políticas claras y concisas, reduciendo la carga de trabajo de los administradores y los errores potenciales de administración. PBM se trata de un framework basado en políticas que permite implementarlas en base a un motor de políticas, el agente SQL, el CLR de SQL, triggers DDL (Data Definition Language) y el Service Broker. Estas políticas se pueden aplicar y evaluar en un sólo servidor o bien en un grupo de servidores, de manera que se mejora la escalabilidad de la administración y monitorización de SQL Server 2008. Empecemos.

Creando una política en SQL Server 2008

Como hemos comentado, n este post vamos a ver cómo funciona este novedoso mecanismo de creación de políticas de SQL Server 2008. En particular, veremos cómo crear políticas de nombrado en la que especificaremos las pautas a seguir a la hora de crear objetos en la BD y asignarles un nombre apropiado. Por ejemplo, una posible política es que sólo se podrán crear tablas que empiecen con el prefijo tbl.

Para crear una política con estas características:

  • En SQL Server Management Studio nos vamos a la sección Management -> Policy Management -> Facets.
  • Nos vamos a la sección Table, hacemos clic con el botón derecho del ratón y seleccionamos la opción New Condition. En la ventana que se abre especificamos los siguientes parámetros:
    • Name: El nombre de tabla empieza por tbl.
    • Facect: Está seleccionada la opción Table.
    • Expression: especificamos:
      • @Name
      • LIKE
      • ‘tbl%’
image

image

  • En el explorador de objetos, vamos ahora a la sección Policies, hacemos clic con el botón derecho del ratón y seleccionamos la opción New Policy. Especificamos los siguientes parámetros:
    • Name: Convenciones en el nombrado de tablas (justo la condición que acabamos de crear).
    • Marcamos el check box Enabled (Habilitando de esta manera la política de manera inmediata).
    • Against Targets, verificamos que está seleccionada la opción El nombre de la tabla empieza por tbl.
    • Execution Mode, seleccionamos On Change_Prevent.

image 

Sin más, tras pulsar OK ya tenemos creada nuestra primera política con PBM.

Validando la política

Para validar que la política funciona, vamos a crear una tabla mediante el siguiente script T-SQL:

USE SQL2008CDC

CREATE TABLE failedpolicy (policyid int)

Como el nombre de la tabla no cumple con la política que hemos creado, se produce un error:

image

Por el contrario, la siguiente query de creación de tabla debería funcionar sin problemas:

USE SQL2008CDC

CREATE TABLE tbl_passedpolicy (policyid int)

image

Y hasta aquí llega lo que os quería contar sobre PBM. Espero que el post os haya resultado interesante.