Servidores vinculados (motor de base de datos)

Configure un servidor vinculado para habilitar a Motor de base de datos de SQL Server para que ejecute comandos en orígenes de datos OLE DB fuera de la instancia de SQL Server. Los servidores vinculados normalmente se configuran para habilitar Motor de base de datos a fin de ejecutar una instrucción Transact-SQL que incluye las tablas de otra instancia de SQL Server u otro producto de base de datos como Oracle. Muchos orígenes de datos OLE DB de tipos pueden configurarse como servidores vinculados, incluidos Microsoft Access y Excel. Los servidores vinculados ofrecen las siguientes ventajas:

  • Capacidad de obtener acceso a datos fuera de SQL Server.

  • Capacidad de ejecutar consultas distribuidas, actualizaciones, comandos y transacciones en orígenes de datos heterogéneos en toda la organización.

  • Capacidad de tratar diferentes orígenes de datos de manera similar.

Puede configurar un servidor vinculado con SQL Server Management Studio o con la instrucción sp_addlinkedserver (Transact-SQL). Los proveedores OLE DB varían en gran medida en el tipo y el número de parámetros necesarios. Por ejemplo, algunos proveedores requieren proporcionar un contexto de seguridad para la conexión con sp_addlinkedsrvlogin (Transact-SQL). Algunos proveedores OLE DB que permiten SQL Server actualizar datos en el origen de OLE DB. Otros solo proporcionan acceso a datos de solo lectura. Para obtener información acerca de cada proveedor OLE DB, consulte la documentación para dicho proveedor OLE DB.

Componentes de servidores vinculados

Una definición de servidor vinculado especifica los siguientes objetos:

  • Un proveedor OLE DB

  • Un origen de datos OLE DB

Un proveedor OLE DB es una biblioteca DLL que administra un origen de datos específico e interactúa con él. Un origen de datos OLE DB identifica la base datos específica a la que se puede tener acceso mediante OLE DB. Aunque los orígenes de datos en los que se realizan consultas a través de definiciones de servidores vinculados son bases de datos normales, existen proveedores OLE DB para una amplia variedad de archivos y formatos de archivo. Se trata de archivos de texto, datos de hojas de cálculo y los resultados de búsquedas de contenido de texto completo.

El proveedor OLE DB de Microsoft SQL Server Native Client (PROGID: SQLNCLI11) es el proveedor OLE DB oficial para SQL Server.

[!NOTA]

Las consultas distribuidas de SQL Server están diseñadas para ser usadas con cualquier proveedor OLE DB que implemente las interfaces OLE DB requeridas. Sin embargo, SQL Server solo se ha probado con el proveedor OLE DB de SQL Server Native Client y algunos otros.

Detalles de servidores vinculados

En la siguiente ilustración se muestran los conceptos básicos de una configuración con servidores vinculados.

Nivel de cliente, nivel de servidor y nivel de servidor de base de datos

Normalmente, los servidores vinculados se utilizan para tratar consultas distribuidas. Cuando una aplicación cliente ejecuta una consulta distribuida mediante un servidor vinculado, SQL Server analiza el comando y envía solicitudes a OLE DB. La solicitud de conjuntos de filas se puede realizar como una consulta al proveedor o abriendo una tabla base del proveedor.

Para que un origen de datos devuelva información mediante un servidor vinculado, el proveedor OLE DB (DLL) para ese origen de datos debe encontrarse en el mismo servidor que la instancia de SQL Server.

Cuando se utiliza un proveedor OLE DB de otro fabricante, la cuenta con la que se ejecuta el servicio de SQL Server debe tener permisos de lectura y ejecución para el directorio y todos los subdirectorios en los que esté instalado el proveedor.

Administrar proveedores

Existe un conjunto de opciones para controlar cómo SQL Server carga y utiliza proveedores OLE DB que se hayan especificado en el registro.

Administrar definiciones de servidores vinculados

Cuando configure un servidor vinculado, registre la información de la conexión y del origen de datos con SQL Server. Una vez realizado el registro, se puede hacer referencia a ese origen de datos con un único nombre lógico.

Puede utilizar procedimientos almacenados y vistas de catálogo para administrar definiciones de servidores vinculados:

  • Cree una definición de servidor vinculado ejecutando sp_addlinkedserver.

  • Vea información acerca de los servidores vinculados definidos en una instancia específica de SQL Server ejecutando una consulta en las vistas de catálogo del sistema sys.servers.

  • Elimine una definición de servidor vinculado ejecutando sp_dropserver. También puede utilizar este procedimiento almacenado para quitar servidores remotos.

También puede definir servidores vinculados mediante SQL Server Management Studio. En el Explorador de objetos, haga clic con el botón secundario en Objetos de servidor, seleccione Nuevo y, a continuación, Servidor vinculado. Para eliminar una definición de servidor vinculado, haga clic con el botón secundario en el nombre del servidor vinculado y seleccione Eliminar.

Cuando ejecute una consulta distribuida en un servidor vinculado, incluya el nombre de cuatro partes completo de una tabla para cada origen de datos en el que desee realizar la consulta. Este nombre de cuatro partes debe tener el formato linked_server_name.catalog**.schema.**object_name.

[!NOTA]

Es posible definir servidores vinculados que señalen al servidor donde se han definido, es decir, que operen como bucle invertido. Los servidores en bucle invertido resultan muy útiles cuando se prueba una aplicación que utiliza consultas distribuidas en una red con un único servidor. Los servidores vinculados en bucle invertido están previstos para la realización de pruebas y no se admiten para muchas operaciones, como las transacciones distribuidas.

Tareas relacionadas

Crear servidores vinculados (motor de base de datos de SQL Server)

sp_addlinkedserver (Transact-SQL)

sp_addlinkedsrvlogin (Transact-SQL)

sp_dropserver (Transact-SQL)

Contenido relacionado

sys.servers (Transact-SQL)

sp_linkedservers (Transact-SQL)