Como muchos otros RDBMS, Microsoft SQL Server cuenta con una base de datos de sistema en el que almacena parámetros generales no asociados a una base de datos concreta sino al propio servidor de datos: el idioma predeterminado, las cuentas de usuario, la meta-información que describe los objetos de cada base de datos, etc.
Esa configuración compartida crea una dependencia en las bases de datos respecto del servidor en que han sido generadas, lo cual añade algunas dificultades para su traslado a otro servidor. Es algo a lo que nos enfrentamos habitualmente cuando se quiere mover una solución desde el servidor en el que ha estado desarrollándose al que se utilizará definitivamente en explotación. En muchos casos se escoge la vía de regenerar en el nuevo servidor todos los objetos de la base de datos original mediante la ejecución de un guión (script).
Entre las novedades que incorpora SQL Server 2012 encontramos una que, al menos en parte, facilita esa operación de traslación entre servidores. Su nombre: bases de datos parcialmente independientes. La idea básica: almacenar en la propia base de datos la información de configuración que le afecta, en lugar de llevarla a la base de datos del sistema. Concretamente se conservarán en la base de datos la meta-información que describe su estructura, un conjunto de parámetros de configuración asociados al idioma y también los usuarios que pueden trabajar con ella.
Por defecto las bases de datos parcialmente independientes están deshabilitadas en una nueva instalación de SQL Server 2012. Para activar su uso tendremos que:
- Abrir el Management Studio, la herramienta de administración fundamental de SQL Server 2012.
- Seleccionar el nodo asociado al servidor y hacer clic sobre él con el botón secundario del ratón.
- Elegir la opción Propiedades para abrir una ventana con ese mismo nombre.
- Abrir la página Avanzado y localizar la sección Contención.
- Desplegar la lista asociada a la opción Habilitar bases de datos independientes y cambiar su valor de
False
aTrue
.
Estando habilitada esta característica, cada vez que creemos una nueva base de datos podremos elegir en la opción Tipo de contención de su página Opciones el elemento Parcial. Esto creará una base de datos parcialmente independiente conteniendo, como se ha indicado antes, la información que la describe y otros parámetros asociados. Parte de ellos podrán personalizarse en la sección Contención de esa misma página de parámetros.
El paso siguiente sería crear las cuentas de los usuarios con acceso a la nueva base de datos. En lugar de emplear las cuentas integradas de Windows, lo cual haría depender la base de datos de la máquina en que está ejecutándose en ese momento, optaremos por crear cuentas de tipo Usuario SQL con contraseña, facilitando un nombre y una contraseña en lugar de simplemente escoger entre las cuentas existentes en el sistema.
Al conectar con una base de datos independiente será necesario cambiar el tipo de autenticación por defecto en la página Inicio de sesión del Management Studio, eligiendo Autenticación de SQL Server. Esto nos permitirá introducir las credenciales de una de las cuentas creadas en el paso previo, almacenadas en la base de datos, en lugar de usar una cuenta de usuario de Windows. El resultado será que podremos trabajar con la base de datos incluso después de haberla llevado a un nuevo servidor, a pesar de que en éste no existan las mismas cuentas de usuario y la configuración de idioma sea distinta.