Habitualmente esto no nos será necesario, ya que utilizando la Consola de Administración de MOSS podemos consultar en qué Base de Datos de Contenido se almacena una Colección de Sitios de MOSS, y seguidamente, consultar en que Servidor SQL se hospeda dicha Base de Datos de Contenido. En dos pasos, pero podemos (ojo, que algunas Granjas de MOSS requieren varias instancias de SQL Server, ya que un único servidor SQL Server puede llegar a ser insuficiente).
Sin embargo, si un buen día detectamos que una Colección de Sitios ha sido eliminada y no sabemos sobre qué Base de Datos de Contenido se estaba almacenando (recordemos cómo gestiona MOSS el almacenamiento de las Colecciones de Sitio sobre las Bases de Datos de Contenido), nos será muy útil poder recuperar un Backup antiguo de la Base de Datos de Configuración de MOSS (SharePoint_Config) para poder consultar con SQL sobre dicha base de datos de configuración, en qué Base de Datos de Contenido y Servidor SQL se almacenaba la Colección de Sitios que se eliminó, para así poder pedir un RESTORE de la Base de Datos de Contenido que fuere, y luego ya veremos (quizás exportar e importar con STSADM o quizás adjuntar la base de datos a MOSS y listo, depende de cada caso). Bueno, este es un ejemplo, pero puede haber más casos en los que nos resulte de utilidad realizar este tipo de consultas.
Antes de nada, IMPORTANTE: Si modificamos cualquier Base de Datos de MOSS (ej: UPDATEs, INSERTs, ALTER TABLEs, etc.) perderemos Soporte. Entiendo que por ejecutar una consulta (SELECT) en modo de Lecturas Sucias, no debería haber problema. En cualquier caso, antes de consultar directamente las bases de datos de MOSS es recomendable consultar son Soporte de Microsoft, para que un ingeniero (PFE) o vuestro TAM os confirme que no hay ningún problema. Otra alternativa, restaurar la Base de Datos en otra instancia de SQL Server (ej: en una instancia de Laboratorio) y ejecutar ahí las Queries, como si se tratase de cualquier otra base de datos.
Vamos al lío. Básicamente, nos interesa consultar las tablas dbo.Objects y dbo.SiteMaps para conseguir nuestro objetivo. A continuación se muestra una pantalla capturada con una ejecución de ejemplo sobre la base de datos SharePoint_Config, de tal modo que se pueda conocer en qué Base de Datos de Contenido y Servidor SQL se almacenaba una Colección de Sitios en particular.
Lo sé. En la anterior pantalla capturada, no se puede ver claramente toda la consulta SQL, ya que queda recortada por la derecha. No pasa nada. A continuación se puede descargar el código fuente de ejemplo, como Dios manda.
Esta consulta la he probado en una instalación de MOSS 2007. No la he probado en una instalación de MOSS 2010, aunque confío que también funcione en ese caso.
Poco más por hoy. Como siempre confío que la lectura resulte de interés.