Compartir a través de


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, consulte 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 una configuración de servidor para ejecutar procedimientos almacenados en otro servidor y no tiene configuraciones de servidor remoto 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 del servidor remoto

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 tener que establecer opciones de configuración para 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, la remote access opción de configuración debe establecerse 1 en en los equipos locales y remotos. (Este es el valor predeterminado). remote access controla los inicios de sesión desde servidores remotos. Puede restablecer esta opción de configuración mediante el procedimiento almacenado Transact-SQL sp_configure 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 acceder 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, a continuación, seleccione Propiedades. En la página Propiedades del servidor , seleccione 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 los usuarios del servidor remoto con el que está emparejado.

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, consulte sp_configure.

Configuración del 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. Las asignaciones de inicio de sesión remoto se pueden configurar mediante el sp_addremotelogin procedimiento almacenado en el servidor remoto.

Nota:

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

Configuración del servidor local

En el caso de los inicios de sesión locales autenticados en SQL Server, no es necesario configurar 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 mediante el sp_addlinkedservlogin procedimiento almacenado. Este nombre de inicio de sesión y contraseña deben coincidir con el inicio de sesión entrante y la contraseña esperados por el servidor remoto, tal como lo crea sp_addremotelogin.

Nota:

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

Ejemplo de seguridad de servidor remoto

Tenga en cuenta estas instalaciones de SQL Server: serverSend y serverReceive. serverReceive está configurado para asignar un inicio de sesión entrante de serverSend, denominado Sales_Mary, a un inicio de sesión autenticado de SQL Server en serverReceive, denominado Alice. Otro inicio de sesión entrante de serverSend, denominado Joe, se asigna a un inicio de sesión autenticado de SQL Server en serverReceive, denominado 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.
EXECUTE sp_addserver 'serverSend';
GO

--Create remote login mapping for login 'Sales_Mary' from serverSend  
--to Alice.
EXECUTE 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. 
EXECUTE 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.
EXECUTE 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.
EXECUTE sp_addlinkedsrvlogin 'serverReceive', false, 'Sales\Mary', 'Sales_Mary', '<password>';
GO

Visualización de las propiedades del servidor local o remoto

Puede usar el xp_msver procedimiento almacenado extendido para revisar los atributos del servidor de los 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, consulte xp_msver.

Servidores vinculados (motor de base de datos)