Servidores remotos

Se aplica a:SQL Server

Los servidores remotos solo se admiten en SQL Server por compatibilidad con versiones anteriores. No obstante, las aplicaciones nuevas deben utilizar servidores vinculados. Para obtener más información, vea Servidores vinculados (Motor de base de datos).

Una configuración de servidor remoto permite a un cliente conectado a una instancia de SQL Server ejecutar un procedimiento almacenado en otra instancia de SQL Server sin necesidad de establecer una conexión individual. En cambio, el servidor al que está conectado el cliente acepta la solicitud de cliente y la envía al servidor remoto en nombre del cliente. El servidor remoto procesa la solicitud y devuelve todos los resultados al servidor original. Este servidor, a su vez, pasa esos resultados al cliente. Cuando configura un servidor remoto, también debe tener en cuenta los aspectos de seguridad.

Si desea configurar un servidor para ejecutar procedimientos almacenados en otro servidor y no dispone de configuraciones de servidores remotos existentes, use servidores vinculados en lugar de servidores remotos. Se permiten procedimientos almacenados y consultas distribuidas en servidores vinculados; sin embargo, solo se permiten procedimientos almacenados en servidores remotos.

Detalles de servidores remotos

Los servidores remotos se configuran en pares. Para configurar un par de servidores remotos, configure ambos servidores para reconocerse mutuamente como servidores remotos.

La mayoría de las veces, no debe establecer opciones de configuración para los servidores remotos. SQL Server establece valores predeterminados en los equipos local y remoto a fin de permitir conexiones de servidores remotos.

Para que el acceso al servidor remoto funcione correctamente, la opción de configuración remote access se debe establecer en 1 tanto en el equipo local como en el remoto. (Esta es la configuración predeterminada). remote access controla los inicios de sesión desde servidores remotos. Es posible restablecer esta opción de configuración con el procedimiento almacenado sp_configure de Transact-SQL o SQL Server Management Studio. Para establecer la opción en SQL Server Management Studio, en la página Conexiones de Propiedades del servidor , use Permitir conexiones remotas con este servidor. Para llegar a la página Conexiones de Propiedades del servidor , en el Explorador de objetos, haga clic con el botón derecho en el nombre del servidor y, luego, haga clic en Propiedades. En la página Propiedades del servidor , haga clic en la página Conexiones .

Desde el servidor local, puede deshabilitar una configuración de servidor remoto para impedir el acceso a ese servidor local por parte de usuarios que se encuentran en el servidor remoto con el que se complementa.

Seguridad para servidores remotos

Para habilitar las llamadas a procedimiento remoto (RPC) en servidores remotos, es preciso configurar asignaciones de inicios de sesión en el servidor remoto (y tal vez en el servidor local) en que se ejecuta una instancia de SQL Server. En SQL Server, las llamadas a procedimiento remoto están deshabilitadas de forma predeterminada. Esta configuración mejora la seguridad del servidor al reducir el área expuesta susceptible de ser atacada. Debe habilitar esta característica para poder usar RPC. Para obtener más información, vea sp_configure (Transact-SQL).

Configurar el servidor remoto

Es necesario configurar asignaciones de inicios de sesión remotos en el servidor remoto. Con estas asignaciones, el servidor remoto asigna el inicio de sesión entrante para una conexión de RPC desde el servidor especificado hasta un inicio de sesión local. Para configurar asignaciones de inicios de sesión remotos, use el procedimiento almacenado sp_addremotelogin en el servidor remoto.

Nota:

La opción trusted de sp_remoteoption no se admite en SQL Server.

Configurar el servidor local

Para inicios de sesión local autenticados de SQL Server , no es necesario establecer una asignación de inicio de sesión en el servidor local. SQL Server usa el inicio de sesión local y password para conectarse al servidor remoto. Para los inicios de sesión autenticados de Windows, configure una asignación de inicio de sesión local en un servidor local que defina el inicio de sesión y la contraseña que utilizará una instancia de SQL Server al establecer una conexión de RPC a un servidor remoto.

Para los inicios de sesión creados por la autenticación de Windows, debe crear una asignación a un nombre de inicio de sesión y una contraseña a través del procedimiento almacenado sp_addlinkedservlogin . Este nombre de inicio de sesión y esta contraseña deben coincidir con el inicio de sesión entrante y la contraseña que espera el servidor remoto, creados por medio de sp_addremotelogin.

Nota:

Siempre que sea posible, utilice la autenticación de Windows.

Ejemplo de seguridad para servidores remotos

Considere las instalaciones SQL Server siguientes: serverSend and serverReceive. serverReceive está configurado para asignar un inicio de sesión entrante de serverSend, denominado Sales_Mary, a un inicio de sesión SQL Server autenticado de serverReceive, llamado Alice. Otro inicio de sesión entrante de serverSend, llamado Joe, está asignado a un inicio de sesión autenticado de SQL Server en serverReceive, llamado Joe.

En el siguiente ejemplo de código de Transact-SQL se configura serverSend para realizar llamadas RPC en serverReceive.

--Create remote server entry for RPCs   
--from serverSend in serverReceive.  
EXEC sp_addserver 'serverSend';  
GO  
  
--Create remote login mapping for login 'Sales_Mary' from serverSend  
--to Alice.  
EXEC sp_addremotelogin 'serverSend', 'Alice', 'Sales_Mary';  
GO  
--Create remote login mapping for login Joe from serverReceive   
--to same login.  
--Assumes same password for Joe in both servers.  
EXEC sp_addremotelogin 'serverSend', 'Joe', 'Joe';  
GO  

En serverSend, se crea una asignación de inicio de sesión local para el inicio de sesión autenticado de Windows Sales\Mary al inicio de sesión Sales_Mary. No se necesita ninguna asignación local para Joe, ya que la opción predeterminada es usar el mismo nombre de inicio de sesión y contraseña, y serverReceive contiene una asignación para Joe.

--Create a remote server entry for RPCs from serverReceive.  
EXEC sp_addserver 'serverReceive';  
GO  
--Create a local login mapping for the Windows authenticated login.  
--Sales\Mary to Sales_Mary. The password should match the  
--password for the login Sales_Mary in serverReceive.  
EXEC sp_addlinkedsrvlogin 'serverReceive', false, 'Sales\Mary',  
   'Sales_Mary', '430[fj%dk';  
GO  

Ver propiedades de servidores locales o remotos

Use el procedimiento almacenado extendido xp_msver para revisar los atributos de servidor de servidores locales o remotos. Estos atributos incluyen el número de versión de SQL Server, el tipo y número de procesadores del equipo y la versión del sistema operativo. Desde el servidor local, puede ver bases de datos, archivos, inicios de sesión y herramientas de servidores remotos. Para obtener más información, vea xp_msver (Transact-SQL).

Servidores vinculados (motor de base de datos)

sp_configure (Transact-SQL)

Configurar la opción de configuración del servidor Acceso remoto

RECONFIGURE (Transact-SQL)