los servidores vinculados permiten enviar una instrucción T-SQL en una instancia de SQL Server, que devuelve datos de otras instancias de SQL Server. Un servidor vinculado permite unir datos de varias instancias de SQL Server mediante una sola instrucción T-SQL cuando los datos existen en varias bases de datos en diferentes instancias SQL. Al usar un servidor vinculado para recuperar datos de varias instancias SQL, lo único que se debe hacer es conectarse a una instancia SQL.,
Hay dos formas de configurar el servidor vinculado en SSMS. Una forma es usando el procedimiento almacenado del sistema sp_addlinkedserver y otra es usando la interfaz GUI de SQL Server Management Studio (SSMS).
en este artículo se explicará cómo configurar un servidor vinculado utilizando una fuente de datos de SQL Server. Puede encontrar más información sobre otras fuentes de datos en este enlace.,
para ver todos los servidores vinculados creados en SSMS, en el Explorador de objetos, elija la carpeta objetos del servidor y expanda la carpeta Servidores vinculados:
para crear un servidor vinculado en SSMS, haga clic derecho en la carpeta Servidores vinculados y desde el menú contextual seleccione la opción nuevo servidor vinculado:
aparece el cuadro de diálogo nuevo servidor vinculado:
en este cuadro de diálogo, se debe identificar el nombre de un servidor vinculado y el tipo de servidor., Los servidores vinculados se pueden definir para diferentes tipos de fuente de datos si se elige el botón de opción Otra fuente de datos. Para los fines de este artículo, se elegirá el botón de opción SQL Server en la sección Tipo de servidor y en el cuadro de texto servidor vinculado, se introducirá un nombre del servidor:
Si se elige el tipo de SQL Server para configurar un servidor vinculado a SQL Server, el nombre especificado en el cuadro de texto servidor vinculado debe ser el nombre del servidor SQL remoto.,
si una instancia de SQL Server es una instancia predeterminada, escriba el nombre del equipo que aloja la instancia de SQL Server (por ejemplo, WSERVER2012). Si SQL Server es una instancia con nombre, escriba el nombre del equipo y el nombre de la instancia separados por una barra diagonal (por ejemplo, WSERVER2012\SQLEXPRESS).,
de lo contrario, puede ocurrir el siguiente error cuando se presiona el botón Aceptar:
para establecer cómo un usuario se autenticaría en la instancia WSERVER2012\SQLEXPRESS, en la sección Seleccionar una página en la esquina superior izquierda del cuadro de diálogo Nuevo servidor vinculado, seleccione el elemento de seguridad:
Aquí, se pueden establecer diferentes formas de autenticar el servidor vinculado.
en las asignaciones de inicio de sesión del servidor Local a Inicio de sesión del servidor remoto, se pueden establecer dos formas de inicio de sesión local a un inicio de sesión remoto., Una forma es asociar un inicio de sesión local con un inicio de sesión remoto y otra forma es suplantar.
inicio de sesión Local
en el campo Inicio de sesión Local, se mostrarán todos los inicios de sesión locales. El inicio de sesión local puede ser un inicio de sesión local de autenticación de SQL Server:
o un inicio de sesión de autenticación de Windows:
ahora, al hacer clic en el botón Aceptar en el cuadro de diálogo Nuevo servidor vinculado, aparecerá el siguiente mensaje de error:
las asignaciones de inicio de sesión deben ser suplantadas o tener un nombre de inicio de sesión remoto.,
vea la imagen de abajo:
esto sucede porque la casilla de verificación suplantar no está marcada.
Impersonate
la casilla de verificación Impersonate cuando está marcada pasa las credenciales de inicio de sesión locales al servidor vinculado., Para la autenticación de SQL Server, el mismo inicio de sesión con las credenciales exactas debe existir en el servidor vinculado, de lo contrario, cuando se conecta al servidor con la autenticación de SQL Server, la lista de las bases de datos en la carpeta catálogos puede tener este aspecto:
para inicios de sesión de Windows, el inicio de sesión debe ser un inicio de sesión válido en el servidor vinculado. Para usar suplantación, se debe establecer la delegación entre el servidor local y el servidor vinculado.
vamos a crear un servidor vinculado usando el inicio de sesión local de Windows., En el cuadro combinado inicio de sesión Local, Elija el inicio de sesión local de Windows y marque la casilla de verificación Impersonate y presione el botón OK:
en la carpeta catálogos, todas las bases de datos que se encuentran en el servidor vinculado aparecerán en la lista:
la opción usuario remoto permite a los usuarios del servidor SQL local conectarse al servidor SQL vinculado aunque sus credenciales no estén presentes en el servidor remoto mediante el uso de las credenciales del usuario que existe en el servidor remoto., Básicamente, permite que los inicios de sesión locales se conecten a un servidor remoto como un inicio de sesión diferente que debe existir en un servidor remoto.
Contraseña Remota
Especifique la contraseña del usuario remoto.
en la lista desplegable Inicio de sesión Local, Elija un inicio de sesión local que se asigne a un inicio de sesión remoto. En el campo usuario remoto, introduzca el nombre del usuario remoto que existe en el servidor remoto y, en el campo contraseña remota archivada, introduzca una contraseña de ese usuario remoto.,e7″>
Además, en el diálogo servidor vinculado, se puede identificar cómo los inicios de sesión que no están configurados en la lista de asignaciones de inicio de sesión del servidor Local a servidor remoto se conectarán al servidor vinculado, para eso hay cuatro opciones que se pueden usar y se encuentran debajo de la sección para un inicio de sesión no definido en la lista anterior, conexiones:
/h2>
si se selecciona este botón de opción, los usuarios que no estén identificados en la lista Asignaciones de inicio de sesión del servidor local a Inicio de sesión del servidor remoto no podrán establecer conexión con el servidor vinculado.,
por ejemplo, si inicia sesión con una cuenta diferente (por ejemplo, Ben) que no está establecida en la lista de asignación de inicio de sesión, la lista de las bases de datos en la carpeta catálogos se verá así:
Si intenta ejecutar una consulta de servidor vinculada:
1
2
3
|
El siguiente resultado aparecerá en la pantalla:
Msg 7416, Nivel 16, Estado 1, Línea 1
el Acceso al servidor remoto se niega porque no login-existe asignación.
be made without using a security context
la opción Be made without using a security context se utiliza para conectarse a fuentes de datos que no requieren ninguna autenticación, por ejemplo, como un archivo de texto., Cuando se selecciona esta opción para conectarse a un servidor vinculado, tendrá el mismo efecto que seleccionar la opción «no realizarse».
Si intenta ejecutar una consulta de servidor vinculado:
1
2
3
|
SELECT * FROM .AdventureWorks2014.Recursos humanos.,Employee e
|
The following message e may appear:
OLE DB provider «SQLNCLI11” for linked server «WSERVER2012\SQLEXPRESS” returned message «Invalid authorization specification”.
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider «SQLNCLI11” for linked server «WSERVER2012\SQLEXPRESS” reported an error. Authentication failed.,
Msg 7303, nivel 16, estado 1, Línea 1
no puede inicializar el objeto de origen de datos de OLE DB provider «SQLNCLI11» para el servidor vinculado «WSERVER2012\SQLEXPRESS».
se realizará utilizando el contexto de seguridad actual del inicio de sesión
si se elige esta opción, pasará el contexto de seguridad actual del inicio de sesión local al inicio de sesión remoto. Si se utiliza la autenticación de Windows, las credenciales de windows se utilizarán para conectarse a un servidor SQL remoto. Si se utiliza la autenticación de SQL Server, las credenciales de inicio de sesión locales se pasarán a SQL Server remoto., Nota, para establecer la conexión al servidor remoto con éxito, el usuario con las mismas credenciales que debe existir en el servidor remoto de otra manera cuando ejecuta una consulta de servidor vinculado:
1
2
3
|
SELECT * FROM .AdventureWorks2014.Recursos humanos.,Empleado e
|
aparecerá El siguiente mensaje:
Msg 18456, Nivel 14, Estado 1, Línea 1
error de inicio de Sesión del usuario ‘Ben’.
se realizará utilizando este contexto de seguridad
la cuarta opción en la sección para un inicio de sesión no definido en la lista anterior, conexiones se realizará utilizando este contexto de seguridad., En los campos Inicio de sesión remoto y con contraseña, Introduzca las credenciales del inicio de sesión de autenticación de SQL Server que existen en un servidor remoto; de lo contrario, puede producirse el siguiente error:
El último elemento del menú seleccionar una página es el elemento Opciones del servidor. Al seleccionar esta opción, se mostrará la siguiente ventana:
Aquí, se pueden ver o configurar opciones adicionales para el servidor vinculado.
compatible con intercalación
la primera opción es la opción compatible con intercalación., Esta opción se usa para identificar si el servidor vinculado tiene la misma intercalación que el servidor local. Esta opción debe establecerse en True solo si se sabe que el servidor vinculado tiene la misma intercalación que el local, de lo contrario debe establecerse en False (predeterminado).
acceso a datos
Esta opción se utiliza para permitir / denegar el acceso a los datos del servidor vinculado. Si esta opción se establece en False, se denegará el acceso a Remoto. Esta opción es útil para deshabilitar temporalmente el acceso a un servidor remoto., El siguiente mensaje aparecerá cuando ejecute una consulta de servidor vinculado y esta opción se establezca en False:
Msg 7411, nivel 16, estado 1, Línea 1
el servidor ‘WSERVER2012\SQLEXPRESS’ no está configurado para el acceso a datos.
de forma predeterminada, la opción se establece en True
RPC y RCP Out
Este RCP (llamada a procedimiento remoto) se utiliza para habilitar el acceso a procedimientos remotos para ser llamado desde el servidor vinculado o para ser llamado al servidor vinculado.,
si estas opciones se establecen en False, aparecerá el siguiente error cuando se llamen algunos procedimientos del servidor vinculado:
Msg 7411, nivel 16, estado 1, Línea 4
el servidor ‘WSERVER2012\SQLEXPRESS’ no está configurado para RPC.,
de forma predeterminada, el valor False se establece para las opciones de salida RPC y RCP
Usar intercalación remota
Cuando esta opción se establece en True, se utilizará la colección de columnas remotas y la colección especificada en el archivo de nombre de intercalación se utilizará para fuentes de datos que no sean fuentes de datos de SQL Server, pero si la opción se establece en False, se utilizará la intercalación para el servidor local. De forma predeterminada, se establece en False.,
nombre de intercalación
Si el archivo Usar intercalación remota se establece en True, esta opción se usa para especificar el nombre de intercalación del servidor vinculado para el origen de datos que no es el origen de datos de SQL Server. Cuando se elige un nombre de intercalación, debe ser una intercalación compatible con SQL Server.
tiempo de espera de conexión
Esta opción se utiliza para establecer el tiempo máximo que el servidor local debe esperar para obtener una conexión con la instancia de SQL Server del servidor vinculado. Si se establece 0 (cero), se utiliza la opción Servidor tiempo de espera de inicio de sesión remoto. De forma predeterminada, se establece 10 segundos para esta opción., Tenga en cuenta que el valor predeterminado para SQL Server 2008 es de 20 segundos.
tiempo de espera de consulta
Esta opción se utiliza para establecer cuánto tiempo, en segundos, puede tardar un proceso remoto antes de que se agote el tiempo. El valor predeterminado es 600 segundos (10 minutos). Para deshabilitar el tiempo de espera de la consulta ponga 0 (cero) en este campo y la consulta esperará hasta que se complete.
distribuidor
en esta opción, se puede especificar si el servidor vinculado participa en la replicación como editor de distribución.,
el Distribuidor es una instancia de base de datos, que actúa como un almacén de datos específicos de replicación asociados con uno o más editores
Editor
en esta opción, se puede establecer si el servidor vinculado es un editor de replicación o no. Si es True, el servidor vinculado es un publisher. De lo contrario, no lo es.
el Editor es una instancia de base de datos, que hace que los datos estén disponibles para otras ubicaciones a través de la replicación.
suscriptor
en esta opción, se puede especificar si el servidor vinculado es un suscriptor de replicación o no.,
Un suscriptor es una instancia de base de datos que recibe datos replicados.
Se puede encontrar más información sobre el Distribuidor, el Editor y el suscriptor en la página de descripción general del modelo de publicación de replicación.
Lazy schema validation
Esta opción comprueba los cambios de esquema que se han producido desde la compilación en las tablas remotas. Si esta opción está establecida en False (estado predeterminado), SQL Server comprueba los cambios antes de la ejecución de una consulta y si hay algunos cambios, recompila la consulta., Si la validación de esquema perezoso se establece en True, un esquema de retraso de SQL Server comprueba las tablas remotas hasta la ejecución de la consulta.
habilitar la promoción de transacciones distribuidas
Esta opción se utiliza para proteger las acciones de un procedimiento de servidor a servidor a través de una transacción de Microsoft Distributed Transaction Coordinator (MS DTC). Si esta opción está establecida en True, la llamada a un procedimiento almacenado remoto inicia una transacción distribuida y enlista la transacción con MS DTC.
ahora, cuando todo esté configurado, haga clic en el botón Aceptar en el cuadro de diálogo Nuevo servidor vinculado., Aparecerá un servidor vinculado recién creado en la carpeta servidor vinculado.,RKS correctamente, haga clic derecho en ese servidor vinculado y elija Probar conexión:
Si se establece una conexión con el servidor vinculado correctamente, aparecerá el siguiente cuadro de mensaje de información:
de lo contrario, se mostrará un mensaje de error que muestra un problema que impide que la conexión establecido con éxito:
consultar datos usando un servidor vinculado
consultar datos usando el servidor vinculado es un poco diferente que consultar datos desde el servidor SQL local., En las consultas normales, por lo general, se utiliza la notación de dos partes . por ejemplo HumanResources.Empleado:
1
2
3
|
SELECT * FROM HumanResources.Employee e
|
Cuando se consulta una tabla desde un servidor vinculado, se utiliza la notación de cuarta parte LinkedServer.Base.Esquema.ObjectName., Para obtener los datos de la tabla Empleado que se encuentra en una base de datos en el servidor vinculado, consultar el código se verá así:
1
2
3
|
SELECT * FROM …,
|
la Eliminación de un servidor vinculado
Para eliminar un servidor vinculado, en virtud de los Servidores Vinculados carpeta, haga clic derecho en el servidor vinculado y en el menú contextual seleccione el comando Eliminar:
se abrirá el diálogo Eliminar Objeto:
haga Clic en el botón ACEPTAR y en el cuadro de mensaje, elija el botón Sí:
Si todo va bien el servidor vinculado será eliminado de los Servidores Vinculados carpeta., Servidor servidor vinculado mediante Transact-SQL
- Autor
- mensajes Recientes
Ver más sobre Marko en LinkedIn
Ver todos los mensajes por Marko Zivkovic
- ¿Cómo conectar a un servidor de MySQL server mediante el uso de SSL en Ubuntu – 28 de abril de 2020
- Cómo instalar MySQL en Ubuntu – 10 de Marzo de 2020
- el Uso de claves SSH para conectarse a un servidor de MySQL Server – 28 de noviembre de 2019