Compartir a través de


Servidores vinculados (motor de base de datos)

Configure un servidor vinculado para permitir que el motor de base de datos de SQL Server ejecute comandos en orígenes de datos OLE DB fuera de la instancia de SQL Server. Los servidores vinculados normalmente se configuran para habilitar el 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 tipos de orígenes de datos OLE DB se pueden configurar 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 que proporcione un contexto de seguridad para la conexión mediante 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

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 se ha probado solo con el proveedor OLE DB de SQL Server Native Client y otros proveedores.

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 Nivel de cliente

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 usa un proveedor OLE DB de terceros, la cuenta con la que se ejecuta el servicio 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 mediante la ejecución de sp_addlinkedserver.

  • Para ver información sobre los servidores vinculados definidos en una instancia específica de SQL Server, ejecute una consulta en las vistas de catálogo del sistema sys.servers.

  • Elimine una definición de servidor vinculado mediante la ejecución de 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 derecho en Objetos de servidor, seleccione Nuevoy, después, Servidor vinculado. Puede eliminar una definición de servidor vinculado al hacer clic con el botón derecho en el nombre del servidor vinculado y seleccionar 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.

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

sp_addlinkedserver (Transact-SQL)

sp_addlinkedsrvlogin (Transact-SQL)

sp_dropserver (Transact-SQL)

sys.servers (Transact-SQL)

sp_linkedservers (Transact-SQL)