Servidores vinculados en SQL

Los servidores vinculados en SQL son objetos de base de datos que se utilizan para crear una conexión a otra base de datos o a otro servidor de bases de datos. Un servidor vinculado se define en la base de datos local y proporciona acceso a los objetos de datos de la base de datos remota.

Los servidores vinculados en SQL se pueden usar para:

  • Acceder a datos de otras bases de datos: los servidores vinculados te permiten usar consultas distribuidas para acceder a datos de otras bases de datos.
  • Realizar operaciones de copia de seguridad: los servidores vinculados te permiten realizar copias de seguridad de bases de datos en otro servidor.
  • Realizar operaciones de restauración: los servidores vinculados te permiten restaurar copias de seguridad de bases de datos desde otro servidor.
  • Realizar tareas de mantenimiento: los servidores vinculados te permiten ejecutar tareas de mantenimiento en otras bases de datos, como indexar tablas o recolectar estadísticas.

Para crear un servidor vinculado en SQL Server, primero debes tener acceso a una cuenta de inicio de sesión válida en el servidor remoto. Luego, puedes usar la siguiente declaración Transact-SQL para crear un servidor vinculado:

USE master;
GO

EXEC sp_addlinkedserver 
    @server=N'ServidorVinculado', 
    @srvproduct=N'SQL Server', 
    @provider=N'SQLNCLI', 
    @datasrc=N'ServidorRemoto\InstanceName';
GO

En este ejemplo, estamos creando un servidor vinculado llamado «ServidorVinculado» que se conectará a un servidor de bases de datos llamado «ServidorRemoto» en la instancia «InstanceName». Una vez creado el servidor vinculado, puedes usar consultas distribuidas para acceder a los objetos de datos de la base de datos remota. Por ejemplo:

SELECT *
FROM ServidorVinculado.BaseDeDatos1.Esquema.Tabla

Los servidores vinculados también pueden ser útiles para mejorar la seguridad de las bases de datos al permitir el acceso a los datos de forma controlada.

También puedes usar el servidor vinculado para realizar operaciones de copia de seguridad y restauración en el servidor remoto. Por ejemplo:

BACKUP DATABASE BaseDeDatos1
TO DISK = N'C:\Backups\BaseDeDatos1.bak'
WITH (
NAME = N'BaseDeDatos1-Completa',
COPY_ONLY,
COMPRESSION
)
RESTORE DATABASE BaseDeDatos1
FROM DISK = N'C:\Backups\BaseDeDatos1.bak'
WITH
REPLACE,
RECOVERY

También puedes crear un servidor vinculado con una cuenta de inicio de sesión con permisos limitados y luego otorgar acceso a los usuarios a través del servidor vinculado en lugar de otorgarles acceso directo a la base de datos.