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.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

5 comentarios en “SQL Server 2008: Policicy Based Management!”

  1. Hola te cuento que no pude realizar la policies
    la opcion Change_Prevent no me aparece solo me aparecen las opciones On Demand y On Schedule después esta todo ok, mi Microsoft SQL Server 20008 cuenta con la version 10.0.1600.22 (Microsoft SQL Server Enterprise Edition (64-bit)) y SO.NT x64

    Si me ayudas te lo agradeseria gracias.

  2. Muy buenas Isa…te cuento, esta semana revisando estos temas con la RTM de SQL Server 2008 me he encontrado con este tema…creo que no se trata de un error, sino que han cambiado la forma en que puedes aplicar las políticas…y me explico, lo que puedes hacer es definir las políticas y luego pasarlas a tu DB para ver que objetos de la misma no la cumplen…de todos modos tengo que seguir probando porque me parece raro este cambio que han hecho.
    Un saludo

    JC’s

  3. Mira Juan Carlos cuando intente hacer con la faceta Tabla, ejemplo que mostraste en la parte superior, no sale el modo de evaluacion no sale :ON change Prevent, pero si a la faceta le das Option table recien te acepta esta tabla , ¿Por qué?, podrias explicarlo por favor.

  4. Buenas Eduardo,
    Es po rlo que comento en el comentario anterior, este post está basado en la RC de SQL Server 2008…en la RTM no aparece directamente la opción ON change Prevent.

    Un saludo

    JC’s

  5. Al parecer las opciones On change prevent se muestran de acuerdo a las facetas, por ejemplo en el caso de aplicar PBM a un stored procedure si permite seleccionar tal opción.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *