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

La creación de un servidor vinculado le permite trabajar con datos de varios orígenes. El servidor vinculado no necesita ser otra instancia de SQL Server, sino que es un escenario común. En este tema se muestra cómo crear un servidor vinculado y tener acceso a los datos desde otra instancia de SQL Server.

En este tema

  • Antes de empezar:

    Antecedentes

    Seguridad

  • Ejemplos:

    SQL Server Management Studio

    Transact-SQL

  • Seguimiento: pasos que se deben realizar después de crear un servidor vinculado

Antecedentes

Un servidor vinculado permite obtener acceso a consultas heterogéneas distribuidas en orígenes de datos OLE DB. Después de crear un servidor vinculado, las consultas distribuidas se pueden ejecutar en este servidor. Las consultas pueden unir tablas de varios orígenes de datos. Si el servidor vinculado se define como instancia de SQL Server, se pueden ejecutar procedimientos almacenados remotos.

Las capacidades y los argumentos requeridos de los servidores vinculados pueden variar significativamente. Los ejemplos de este tema proporcionan un ejemplo típico. Sin embargo, no se describen todas las opciones. Para obtener más información, vea sp_addlinkedserver (Transact-SQL).

Seguridad

Permisos

Requiere el permiso ALTER ANY LINKED SERVER en el servidor.

[Arriba]

Crear un servidor vinculado

Puede usar cualquiera de los elementos siguientes:

  • SQL Server Management Studio

  • Transact-SQL

Usar SQL Server Management Studio

Para crear un servidor vinculado a otra instancia de SQL Server con SQL Server Management Studio

  1. En SQL Server Management Studio, abra el Explorador de objetos, expanda Objetos de servidor, haga clic con el botón secundario en Servidores vinculados y, a continuación, haga clic en Nuevo servidor vinculado.

  2. En el cuadro Servidor vinculado de la página General, escriba el nombre de la instancia de SQL Server al que esté vinculando.

    Nota

    Si la instancia de SQL Server es la instancia predeterminada, escriba el nombre del equipo que hospede la instancia de SQL Server. Si SQL Server es una instancia con nombre, escriba el nombre del equipo y el de la instancia, por ejemplo, Accounting\SQLExpress.

  3. En el área Tipo de servidor, seleccione SQL Server para indicar que el servidor vinculado es otra instancia de SQL Server.

  4. En la página Seguridad, especifique el contexto de seguridad que se usará cuando la versión original de SQL Server se conecte con el servidor vinculado. En un entorno de dominio donde los usuarios se conectan mediante sus inicios de sesión, la selección de Se establecerán usando el contexto de seguridad actual del inicio de sesión suele ser la mejor opción. Cuando los usuarios se conecten a la versión original de SQL Server usando un inicio de sesión de SQL Server, la mejor opción suele ser seleccionar Se establecerán usando este contexto de seguridad y, a continuación, proporcionar las credenciales necesarias para autenticar el servidor vinculado.

  5. Haga clic en Aceptar.

[Arriba]

Usar Transact-SQL

Para crear un servidor vinculado mediante Transact-SQL, use las instrucciones sp_addlinkedserver (Transact-SQL)CREATE LOGIN (Transact-SQL) y sp_addlinkedsrvlogin (Transact-SQL).

Para crear un servidor vinculado a otra instancia de SQL Server con Transact-SQL

  1. En el Editor de consultas, escriba el siguiente comando Transact-SQL para vincular a una instancia de SQL Server denominada SRVR002\ACCTG:

    USE [master]
    GO
    EXEC master.dbo.sp_addlinkedserver 
        @server = N'SRVR002\ACCTG', 
        @srvproduct=N'SQL Server' ;
    GO
    
  2. Ejecute el siguiente código para configurar el servidor vinculado con el fin de que use las credenciales de dominio del inicio de sesión que usa el servidor vinculado.

    EXEC master.dbo.sp_addlinkedsrvlogin 
        @rmtsrvname = N'SRVR002\ACCTG', 
        @locallogin = NULL , 
        @useself = N'True' ;
    GO
    

[Arriba]

Seguimiento: pasos que se deben realizar después de crear un servidor vinculado

Para probar el servidor vinculado

  • Ejecute el siguiente código para probar la conexión al servidor vinculado. En este ejemplo se devuelven los nombres de las bases de datos del servidor vinculado.

    SELECT name FROM [SRVR002\ACCTG].master.sys.sysdatabases ;
    GO
    

Escribir una consulta que una tablas desde un servidor vinculado

  • Use nombres de cuatro partes para hacer referencia a un objeto de un servidor vinculado. Ejecute el código siguiente para que se devuelva una lista de todos los inicios de sesión del servidor local y sus inicios de sesión coincidentes en el servidor vinculado.

    SELECT local.name AS LocalLogins, linked.name AS LinkedLogins
    FROM master.sys.server_principals AS local
    LEFT JOIN [SRVR002\ACCTG].master.sys.server_principals AS linked
        ON local.name = linked.name ;
    GO
    

    Cuando se devuelve NULL para el inicio de sesión del servidor vinculado, se indica que el inicio de sesión no existe en el servidor vinculado. Estos inicios de sesión no podrán usar el servidor vinculado a menos que este se configure para pasar un contexto de seguridad distinto o el servidor vinculado acepte conexiones anónimas.

[Arriba]