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.