Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Managed Instance
Los servidores vinculados permiten que el motor de base de datos de SQL Server y Azure SQL Managed Instance lean datos de orígenes de datos remotos y ejecuten comandos en servidores de bases de datos remotas (por ejemplo, orígenes de datos OLE DB), fuera de la instancia de SQL Server. Normalmente, se configuran servidores vinculados para permitir que el motor de base de datos ejecute una instrucción Transact-SQL que incluya tablas en otra instancia de SQL Server u otro producto de base de datos como Oracle. Puede configurar muchos tipos de orígenes de datos OLE DB como servidores vinculados, incluidos proveedores de bases de datos de terceros y Azure Cosmos DB.
Nota:
Los servidores vinculados están disponibles en SQL Server y Azure SQL Managed Instance (con algunas restricciones). Los servidores vinculados no están disponibles en Azure SQL Database.
¿Cuándo usar servidores vinculados?
Los servidores vinculados le permiten implementar bases de datos distribuidas que pueden capturar y actualizar datos en otras bases de datos. Use servidores vinculados en escenarios en los que necesite implementar el particionamiento de bases de datos sin crear código de aplicación personalizado ni cargar directamente desde orígenes de datos remotos. 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. 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 con sp_addlinkedsrvlogin. Algunos proveedores OLE DB que permiten a 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 de datos específica a la que puede acceder a través de 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. Estos archivos incluyen texto sin formato, datos de hoja de cálculo y los resultados de búsquedas de contenido de texto completo.
A partir de SQL Server 2019 (15.x), el controlador Microsoft OLE DB Driver for SQL Server (PROGID: MSOLEDBSQL) es el proveedor OLE DB predeterminado. En versiones anteriores, el proveedor OLE DB SQL Server Native Client (PROGID: SQLNCLI11) era el proveedor OLE DB predeterminado.
Importante
SQL Server Native Client (a menudo abreviado SNAC) se ha quitado de SQL Server 2022 (16.x) y SQL Server Management Studio 19 (SSMS). Para nuevos trabajos de desarrollo, no se recomiendan ni el proveedor OLE DB de SQL Server Native Client (SQLNCLI o SQLNCLI11) ni el proveedor OLE DB de Microsoft para SQL Server (SQLOLEDB) heredado. Cambie al nuevo Controlador Microsoft OLE DB para SQL Server de ahora en adelante.
Microsoft admite servidores vinculados a orígenes de Excel y Access solo cuando se usa el proveedor OLE DB de 32 bits Microsoft.JET.OLEDB.4.0.
Nota:
Las consultas distribuidas de SQL Server funcionan con cualquier proveedor OLE DB que implemente las interfaces OLE DB necesarias. Pero SQL Server se ha probado con el proveedor OLE DB predeterminado.
Detalles de servidores vinculados
En la siguiente ilustración se muestran los conceptos básicos de una configuración con servidores vinculados.
Normalmente, se usan servidores vinculados para controlar las 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.
Los servidores vinculados admiten la autenticación de paso a través de Active Directory cuando se usa la delegación completa. A partir de SQL Server 2017 (14.x) CU17, también se admite la autenticación de paso a través con delegación restringida; sin embargo, no se admite la delegación restringida basada en recursos.
Importante
Cuando se usa un proveedor OLE DB, 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. Este requisito se aplica a los proveedores publicados por Microsoft y a los proveedores de terceros.
Administración de 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.
Administración de definiciones de servidor vinculado
Al configurar un servidor vinculado, registre la información de conexión y la información del origen de datos con SQL Server. Una vez registrado, puede hacer referencia a ese origen de datos con un único nombre lógico.
Use procedimientos almacenados y vistas de catálogo para administrar definiciones de servidor vinculadas:
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 los servidores vinculados mediante SQL Server Management Studio. En el Explorador de objetos, haga clic con el botón derecho en Objetos de servidor, seleccione Nuevo y seleccione 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>.
Las referencias a objetos temporales siempre se resuelven en la instancia local de tempdb, incluso cuando se prefije con el nombre del servidor vinculado.
Puede definir servidores vinculados para que apunten (bucle invertido) al servidor en el que los defina. 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.
Servidores vinculados con Azure SQL Managed Instance
Los servidores vinculados de Azure SQL Managed Instance admiten la autenticación de SQL y la autenticación con el identificador de Microsoft Entra.
Para usar trabajos del Agente SQL en Azure SQL Managed Instance para consultar un servidor remoto a través de un servidor vinculado, use sp_addlinkedsrvlogin para crear una asignación desde un inicio de sesión en el servidor local a un inicio de sesión en el servidor remoto. Cuando el trabajo del Agente SQL se conecta al servidor remoto a través del servidor vinculado, ejecuta la consulta T-SQL en el contexto del inicio de sesión remoto. Para obtener más información, consulte Trabajos de Agente SQL con Azure SQL Managed Instance.
Autenticación de Microsoft Entra
Los dos modos de autenticación Microsoft Entra son: de identidad administrada y de paso a través. Utilice la autenticación de identidad administrada para permitir que las sesiones locales consulten servidores vinculados remotos. Utilice la autenticación de paso a través para permitir que un principal se autentique con una instancia local para acceder a una instancia remota a través de un servidor vinculado.
Para usar la autenticación transferida a través de Microsoft Entra para un servidor vinculado en Azure SQL Managed Instance, necesita los siguientes requisitos previos:
- El mismo principal se agrega como inicio de sesión en el servidor remoto.
- Ambas instancias son miembros del grupo de confianza de SQL.
Nota:
Las definiciones existentes de servidores vinculados que configuró para el modo de paso a través admiten la autenticación de Microsoft Entra. El único requisito es agregar la Instancia Administrada de SQL al grupo de confianza del servidor.
Las limitaciones siguientes se aplican a la autenticación de Microsoft Entra para servidores vinculados en Azure SQL Managed Instance:
- La autenticación de Microsoft Entra no se admite para las instancias administradas de SQL en distintos inquilinos de Microsoft Entra.
- La autenticación de Microsoft Entra para servidores vinculados solo se admite con la versión 18.2.1 y posteriores del controlador OLE DB.
SQL Server 2025 y MSOLEDBSQL, versión 19
A partir de SQL Server 2025 (17.x), el proveedor MSOLEDBSQL usa Microsoft OLE DB Driver 19 de forma predeterminada. Este controlador actualizado presenta mejoras de seguridad significativas, incluida la compatibilidad con TDS 8.0 y TLS 1.3.
TDS 8.0 mejora la seguridad agregando una nueva opción de cifrado e introduce un cambio importante: el Encryption parámetro ya no es opcional. Debe establecerlo en la cadena de conexión cuando tenga como destino otra instancia de SQL Server.
Nota:
Sin el Encrypt parámetro , los servidores vinculados de SQL Server 2025 (17.x) tienen como valor predeterminado Encrypt=Mandatory y requieren un certificado válido. Se produce un error en las conexiones sin un certificado válido.
El Encryption parámetro ofrece tres valores distintos:
-
Yes, oTrue, oMandatory -
No, oFalse, oOptional Strict
La Strict opción exige el uso de TDS 8.0 y requiere un certificado de servidor para conexiones seguras. Para Yes/True/Mandatory, se espera un certificado de confianza. No puede utilizar un certificado autofirmado.
| Versión de OLE DB | Parámetro de cifrado | Valores posibles | Valor predeterminado |
|---|---|---|---|
| OLE DB 18 | Opcional |
True o Mandatory, False o No |
No |
| OLE DB 19 | Required |
No o False, Yes o Mandatory, Strict (nuevo) |
Yes |
El TrustServerCertificate parámetro se admite, pero no se recomienda. Establecer Confianza en el certificado del servidor en Yes deshabilita la validación de certificados, debilitando la seguridad de las conexiones cifradas. Para usar el certificado de servidor de confianza , el cliente también debe habilitarlo en el registro de la máquina. Para obtener información sobre cómo habilitar el certificado de servidor de confianza, consulte Configuración del Registro. No se recomienda establecer TrustServerCertificate=Yes para entornos de producción.
Cuando se usa Encrypt=False o Encrypt=Optional:
- No se requiere ningún certificado.
- Si se proporciona un certificado de confianza, el controlador no lo valida.
- La conexión no proporciona ningún cifrado.
Cuando se usa Encrypt=True o Encrypt=Mandatory, y no se usa TrustServerCertificate=Yes:
- La conexión requiere un certificado firmado por ca válido.
- El certificado debe coincidir con el FQDN del servidor.
- Si el nombre alternativo del certificado difiere del nombre de host de SQL Server,
HostNameInCertificatedebe establecerse en el FQDN. - El certificado debe instalarse en el almacén de Entidades de certificación raíz de confianza del equipo cliente.
Cuando se usa Encrypt=Strict:
- La conexión impone TDS 8.0.
- La conexión requiere un certificado válido firmado por una entidad de certificación que coincida con el FQDN.
-
HostNameInCertificatedebe establecerse en el FQDN. - El sistema cliente debe confiar en el certificado.
-
TrustServerCertificateNo se admite la configuración. Debe haber un certificado válido.
| Cliente configurado con Confiar en certificado de servidor | Cadena/atributo de conexión Trust Server Certificate | Validación de certificados |
|---|---|---|
| 0 |
No (valor predeterminado) |
Sí |
| 0 | Yes |
Sí |
| 1 |
No (valor predeterminado) |
Sí |
| 1 | Yes |
No |
Debe especificar correctamente estas opciones en la cadena de conexión al configurar conexiones de servidor vinculadas para garantizar la compatibilidad y la seguridad con el nuevo controlador.
Actualización de versiones anteriores de OLEDB
Aplica a: SQL Server 2025 (17.x) y versiones posteriores
Al migrar de ediciones anteriores de SQL Server a SQL Server 2025 (17.x) con Microsoft OLE DB Driver 19, es posible que se produzcan errores en las configuraciones de servidor vinculado existentes. Los distintos valores predeterminados del parámetro de cifrado pueden provocar este error a menos que proporcione un certificado válido.
Como alternativa, puede volver a crear el servidor vinculado e incluirlo Encrypt=Optional en la cadena de conexión. Si no puede modificar la configuración del servidor vinculado, habilite la marca 17600 de seguimiento para mantener el comportamiento y los valores predeterminados de OLE DB 18.
En el Asistente para la creación de servidores vinculados de SQL Server Management Studio (SSMS), use la opción Otros orígenes de datos para configurar manualmente las opciones de cifrado del servidor vinculado.
Para obtener más información sobre OLE DB 19 y el cifrado, el comportamiento de certificados y certificados de servidor de confianza para OLE DB 19, consulte Cifrado y validación de certificados en OLE DB.