Administrar servidores mediante administración basada en directivas
La administración basada en directivas es un sistema para administrar una o varias instancias de SQL Server 2008. Cuando los administradores de directivas de SQL Server utilizan la administración basada en directivas, utilizan SQL Server Management Studio para crear directivas que permitan administrar las entidades en el servidor, como la instancia de SQL Server, las bases de datos u otros objetos de SQL Server.
La administración basada en directivas tiene tres componentes:
Administración de directivas
Los administradores de directivas crean las directivas.
Administración explícita
Los administradores seleccionan uno o varios destinos administrados y comprueban explícitamente que los destinos cumplan una directiva concreta o hacen que la cumplan.
Modos de evaluación
Hay cuatro modos de evaluación; tres de ellos se pueden automatizar:
A petición. Este modo evalúa la directiva cuando lo especifica el usuario directamente.
Al cambiar: impedir. Este modo automatizado utiliza desencadenadores DDL para evitar las infracciones de las directivas.
Importante Si la opción de configuración de servidor de desencadenadores anidados está deshabilitada, Al cambiar: impedir no funcionará correctamente. La administración basada en directivas se basa en los desencadenadores DDL para detectar y revertir las operaciones DDL que no obedecen a las directivas que utilizan este modo de evaluación. Al quitar los desencadenadores DDL de la administración basada en directivas o deshabilitar los desencadenadores anidados, este modo de evaluación provocará un error o se comportará de forma inesperada.
Al cambiar: sólo registrar. Este modo automatizado utiliza la notificación de eventos para evaluar una directiva cuando se realiza un cambio relevante.
Al programar. Este modo automatizado utiliza un trabajo del Agente SQL Server para evaluar una directiva periódicamente.
Cuando las directivas automatizadas no estén habilitadas, la administración basada en directivas no afectará al rendimiento del sistema.
Condiciones y conceptos de la administración basada en directivas
Destino de la administración basada en directivas
Entidades que se administran con la administración basada en directivas, como una instancia de SQL Server Database Engine (Motor de base de datos de SQL Server), una base de datos, una tabla o un índice. Todos los destinos de una instancia de servidor forman una jerarquía de destino. Un conjunto de destinos es el resultado de aplicar un conjunto de filtros de destino a la jerarquía de destino, por ejemplo, todas las tablas de la base de datos que es propiedad del esquema HumanResources.Faceta de administración basada en directivas
Conjunto de propiedades lógicas que modelan el comportamiento o las características de ciertos tipos de destinos administrados. El número y las características de las propiedades están integrados en la faceta y sólo el fabricante de la faceta las puede agregar o quitar. Un tipo de destino puede implementar una o varias facetas de administración, y uno o varios tipos de destino pueden implementar una faceta de administración. Algunas propiedades de una faceta sólo se pueden aplicar a una versión concreta. Por ejemplo, la propiedad Correo electrónico de base de datos de la faceta Configuración de área expuesta sólo se aplica a SQL Server 2005 y versiones posteriores.Condición de la administración basada en directivas
Una expresión booleana que especifica un conjunto de estados permitidos de un destino administrado mediante la administración basada en directivas con respecto a una faceta de administración.Directiva de administración basada en directivas
Una condición de administración basada en directivas y el comportamiento esperado, por ejemplo, el modo de evaluación, los filtros de destino y la programación. Una directiva solo puede contener una condición. Las directivas pueden estar habilitadas o deshabilitadas.Categoría de directiva de administración basada en directivas
Categoría definida por el usuario para ayudar a administrar las directivas. Los usuarios pueden clasificar las directivas en categorías diferentes. Una directiva pertenece a una y sólo una categoría. Las categorías de directiva se aplican a las bases de datos y servidores. En el nivel de base de datos, se aplican las condiciones siguientes:Los propietarios de base de datos pueden suscribir una base de datos a un conjunto de categorías de directiva.
Sólo las directivas de sus categorías subscritas pueden gobernar una base de datos.
Todas las bases de datos se suscriben implícitamente a la categoría de directiva predeterminada.
En el nivel de servidor, las categorías de directiva se pueden aplicar a todas las bases de datos.
Directiva efectiva
Las directivas efectivas de un destino son las que lo gobiernan. Una directiva sólo es efectiva con respecto a un destino si se satisfacen todas las condiciones siguientes:La directiva está habilitada.
El destino pertenece al conjunto de destinos de la directiva.
El destino o uno de los antecesores de los destinos se suscribe al grupo de directivas que contiene esta directiva.
Ejemplos de problemas resueltos utilizando la administración basada en directivas
La administración basada en directivas sería útil para resolver los problemas presentados en los escenarios siguientes:
Una directiva de la compañía prohíbe habilitar Correo electrónico de base de datos o SQL Mail. Una directiva se crea para comprobar el estado del servidor de esas dos características. Un administrador compara el estado del servidor con la directiva. Si el estado del servidor indica que es incompatible, el administrador elige el modo Configurar y la directiva pone el estado del servidor como compatible.
La base de datos AdventureWorks tiene una convención de nomenclatura que requiere que todos los nombres de los procedimientos almacenados comiencen con las letras AW_. Se crea una directiva para aplicar esta convención. Un administrador prueba esta directiva y recibe una lista de procedimientos almacenados que no la cumplen. Si los procedimientos almacenados futuros no obedecen esta convención de nomenclatura, se produce un error en las instrucciones de creación de los procedimientos almacenados.
Modos de evaluación permitidos
Los modos de evaluación de una directiva están determinados por las características de la faceta de administración basada en directivas que usa la directiva. Todas las facetas admiten A petición y Al programar. Las facetas admiten Al cambiar: sólo registrar si el cambio de estado de la faceta puede ser capturado por algunos eventos. Las facetas admiten Al cambiar: impedir si hay compatibilidad transaccional con las instrucciones DDL que cambian el estado de la faceta. Las directivas que se automatizan con alguno de estos tres modos de ejecución pueden habilitarse y deshabilitarse.
En SQL Server Management Studio, el cuadro de diálogo Evaluar directivas proporciona dos opciones que puede utilizar para ejecutar una directiva:
Evaluar
De este modo las directivas se evaluarán con los destinos seleccionados.Aplicar
Permite aplicar los cambios a los destinos aplicables que infrinjan las directivas. Algunos destinos no se pueden volver a configurar a través de la administración basada en directivas. Por ejemplo, si está evaluando si los archivos de datos y de copia de seguridad se hallan en dispositivos independientes, la administración basada en directivas puede detectar las infracciones de esta condición; sin embargo, no puede aplicar los cambios a través de la administración basada en directivas para exigir el cumplimiento de las directivas.
Administración de directivas
Las directivas se crean y se administran por medio de Management Studio. El proceso consta de los pasos siguientes:
Seleccione una faceta de administración basada en directivas que contenga las propiedades que se van a configurar.
Defina una condición que especifique el estado de una faceta de administración.
Defina una directiva que contenga la condición, las condiciones adicionales que filtran los conjuntos de destinos y el modo de evaluación.
Compruebe si una instancia de SQL Server cumple la directiva.
Para las directivas que no se cumplen, el Explorador de objetos indica una advertencia de estado crítico en forma de icono rojo al lado del destino y los nodos superiores en el árbol del Explorador de objetos.
Almacenamiento de directivas
Las directivas se almacenan en la base de datos msdb. Después de cambiar una directiva o condición, se debería hacer una copia de seguridad de la base de datos msdb. Para obtener más información, vea Consideraciones para hacer copias de seguridad de las bases de datos model y msdb.
SQL Server 2008 incluye directivas que se pueden utilizar para supervisar una sesión de SQL Server. De forma predeterminada, estas directivas no están instaladas en Database Engine (Motor de base de datos); sin embargo, se pueden importar desde la ubicación de instalación predeterminada C:\Archivos de programa\Microsoft SQL Server\100\Tools\Policies\DatabaseEngine\1033. Para obtener más información, vea Cómo exportar e importar una directiva de administración basada en directivas.
Puede crear directamente las directivas utilizando el menú Archivo/Nuevo y guardándolas después en un archivo. Esto le permite crear directivas cuando no esté conectado a una instancia de Database Engine (Motor de base de datos).
El historial de las directivas evaluadas en la instancia actual de Database Engine (Motor de base de datos) se mantiene en las tablas del sistema de msdb. El historial de las directivas aplicadas a otras instancias de Database Engine (Motor de base de datos) o a Reporting Services o Analysis Services no se conserva. Para obtener más información, vea Solucionar problemas de directivas de administración basada en directivas.
Configurar alertas para notificar los errores de directiva a los administradores de directivas
Cuando las directivas de administración basada en directivas se ejecutan en uno de los tres modos de evaluación automatizados, si se produce la infracción de una directiva, se escribe un mensaje en el registro de eventos. Para que se le notifique cuando este mensaje se escribe en el registro de eventos, puede crear una alerta que se active al detectar el mensaje y permita realizar una acción. La alerta debería detectar los mensajes que se muestran en la tabla siguiente.
Modo de ejecución |
Número de mensaje |
---|---|
Al cambiar: impedir (si es Automático) |
34050 |
Al cambiar: impedir (si es A petición) |
34051 |
Al programar |
34052 |
Al cambiar |
34053 |
Si desea configurar una alerta para responder a los mensajes de error de administración basada en directivas, vea los temas siguientes:
Cómo crear una alerta mediante un número de error (SQL Server Management Studio)
Cómo asignar alertas a un operador (SQL Server Management Studio)
Consideraciones adicionales sobre las alertas
Tenga en cuenta las consideraciones adicionales siguientes acerca de las alertas:
Las alertas sólo se generan para las directivas que están habilitadas. Dado que las directivas A petición no pueden estar habilitadas, no se generan alertas para las directivas que se ejecutan a petición.
Si la acción que desea tomar incluye enviar un mensaje de correo electrónico, debe configurar una cuenta de correo. Recomendamos usar Correo electrónico de base de datos. Para obtener más información acerca de cómo configurar Correo electrónico de base de datos, vea Cómo crear cuentas de Correo electrónico de base de datos (Transact-SQL).
Seguridad de alerta:
Cuando las directivas se evalúan a petición, se ejecutan en el contexto de seguridad del usuario. Para escribir en el registro de errores, el usuario debe tener los permisos ALTER TRACE o ser miembro de la función fija de servidor sysadmin. Las directivas que evalúe un usuario que tenga menos privilegios no escribirán en el registro de eventos y no desencadenarán una alerta.
Los modos de ejecución automatizados se ejecutan como un miembro de la función sysadmin. Esto permite que la directiva se escriba en el registro de errores y se genere una alerta.
Seguridad
Usar la administración basada en directivas requiere la pertenencia a la función PolicyAdministratorRole en la base de datos msdb. Esta función tiene el control completo de todas las directivas en el sistema. Este control permite crear y modificar las directivas y condiciones, y habilitar y deshabilitar las directivas.
Nota de seguridad |
---|
Posible elevación de credenciales: Los usuarios de la función PolicyAdministratorRole pueden crear desencadenadores del servidor y programar ejecuciones de directivas que pueden afectar al funcionamiento de la instancia de Database Engine (Motor de base de datos). Por ejemplo, PolicyAdministratorRole puede crear una directiva que puede evitar que la mayoría de los objetos se creen en Database Engine (Motor de base de datos). Debido a esta posible elevación de credenciales, la función PolicyAdministratorRole se debería conceder únicamente a los usuarios que sean de confianza para controlar la configuración del Database Engine (Motor de base de datos). |
Se aplican los principios de seguridad siguientes:
Un administrador del sistema o propietario de la base de datos puede suscribir una base de datos a una directiva o grupo de directivas.
Los miembros de la función PolicyAdministratorRole pueden habilitar o deshabilitar las directivas.
Los miembros de PolicyAdministratorRole pueden crear directivas para las que no tienen permiso de ejecución ad hoc cuando otros usuarios que dispongan del permiso necesario las ejecuten.
Nota de seguridad Posible elevación de credenciales: Los usuarios de la función PolicyAdministratorRole pueden crear directivas que contengan una condición que use las funciones ExecuteSql o ExecuteWql. Si un usuario con los permisos de sysadmin ejecuta posteriormente la directiva, la instrucción de Transact-SQL proporcionada por el administrador de directivas se ejecutará con los permisos de sysadmin del usuario que la está ejecutando.
La ejecución de la directiva ad hoc se produce en el contexto de seguridad del usuario.
Con las directivas que tengan el modo de evaluación Al programar, utilice trabajos del Agente SQL Server que sean propiedad del inicio de sesión sa.
Consideraciones para usar la administración basada en directivas
Tenga en cuenta que las directivas pueden afectar a la forma de funcionamiento de algunas características de SQL Server. Por ejemplo, la captura de datos modificados y la replicación transaccional usan ambas la tabla systranschemas, que carece de índice. Si habilita una directiva que indique que todas las tablas deben tener un índice, exigir el cumplimiento de la directiva hará que estas características generen un error.
Vea también