You are on page 1of 8

Un servidor es una definicin permanente de una conexin lgica a un origen de datos externos.

En su definicin de una cadena de conexin OLEDB y un proveedor OLEDB que asociamos a un nombre lgico, es decir, permite definir un nombre para el servidor vinculado, y a dicho nombre especificarle que proveedor OLEDB y que cadena de conexin se debe utilizar para acceder al correspondiente origen de datos OLEDB cuando se solicite acceso a dicho servidor vinculado. SQL Server nos provee una gran utilidad como los son los servidores vinculados (Linked Server), estos son conexiones OLE DB hacia otras base de datos sin importar que motor de base de datos sean.

Los servidores vinculados nos permiten: Conectarnos remotamente a otro servidor de base de datos. Realizar consultas a travs de SQL Server. Realizar transacciones de datos. Estos servidores se componen de dos partes inicialmente: Proveedor de datos OLE DB de origen(es el encargado de establecer la conexin con otros servidores). Origen de datos(es el servidor al cual vamos a acceder a travs de SQL Server) Los servidores vinculados ofrecen las siguientes ventajas: Acceso al servidor remoto. Capacidad de ejecutar consultas distribuidas, actualizaciones, comandos y transacciones en orgenes de datos heterogneos en t oda la organizacin. Capacidad de tratar diferentes orgenes de datos de manera similar.

Un proveedor OLE DB.

Un proveedor OLE DB es una biblioteca DLL que administra un origen de datos especfico e interacta con el.

Un origen de datos OLE DB.

Un origen de datos OLE DB identifica la base de datos especfica a la que se puede tener acceso mediante OLE DB. Aunque los orgenes de datos en los que se realizan consultas a travs de definiciones de servidores vinculados

Sobre un Servidor Vinculado (Linked Server) es posible configurar con qu credenciales se conectarn los usuarios al Origen de Datos externo, lo cual, resulta de gran utilidad si el Origen de Datos externos lo permite (es decir, si es susceptible de que le indiquemos usuario y password).

un Servidor Vinculado (Linked Server) es posible configurar Para conseguirlo, podemos hacer lo siguiente: Configurar un mapeo de Inicios de Sesin locales a usuarios remotos, de tal modo, que para cada Inicio de Sesin podemos configurar un Usuario y Contrasea especfico, o bien, podemos configurar Impersonate (Representar). La opcin de Impersonar (Impersonate o Representar), permite que se pasen las credenciales (nombre de usuario y contrasea) del Inicio de Sesin local al Servidor Vinculado. Especificar la accin a realizar cuando un Inicio de Sesin que no est en el mapeo anterior, solicite acceso al Servidor Vinculado.

Un Servidor Vinculado (Linked Server) es posible definir varias opciones, que pueden resultar de gran utilidad. En particular, las opciones de un Servidor Vinculado que ms se suelen utilizar (ojo, que no son las nicas) son: Data Access (Acceso a datos). Por defecto es True. Esta opcin tiene que estar activada para poder acceder a los datos del Servidor Vinculado, como por ejemplo, para ejecutar una simple SELECT sobre el Servidor Vinculado. Puede resultar de utilidad, como medio para deshabilitar un Servidor Vinculado, ya que sin necesidad de eliminarlo, conseguimos que se deje de acceder a dicho Origen de Datos externo (es decir, al Servidor Vinculado).

RPC Out (Salida RPC). Por defecto es False. Es necesario activar esta opcin (RPC Out True) para poder ejecutar Procedimientos Almacenados remotos (es decir, ejecutar Procedimientos Almacenados en el Servidor Vinculado).
La opcin de RPC Out es bastante importante. Por ejemplo, para ejecutar SQL Dinmico en un Servidor Vinculado (es decir, ejecutar SQL Dinmico en un servidor remoto), es necesario activar RPC Out (Salida RPC) en las opciones del Servidor Vinculado, indiferentemente de que utilicemos sp_executesql NCodigo Dinmico o EXEC(Cdigo Dinmico) AT. Quizs pueda parecer incorrecto que RPC Out est deshabilitado por defecto. Sin embargo, esta es una muy buena prctica desde el punto de vista de la seguridad, de tal modo, que si no es necesario ejecutar Procedimientos Almacenados remotos (sobre Servidores Vinculados), no activamos RPC Out y evitamos que algn usuario pueda ser tentado por la curiosidad).

Origen de datos

Nombre de proveedor

Permite transacciones distribuidas

SQL Server 7.0 posterior Orgenes de datos ODBC Bases de datos de Microsoft Access (Jet) Hojas de clculo de Microsoft Excel Bases de datos Oracle

Bases de datos Oracle**


Directorio de Microsoft Windows 2000 Sistema de archivos local (mediante Servicios de Index Server) Bases de datos IBM DB2 Microsoft Exchange Server

Provedor OLE DB de Microsoft SQL Server Native Client Provedor Microsoft OLE DB para ODBC Proveedor Microsoft OLE DB para Jet versin 4.00 Proveedor Microsoft OLE DB para Jet versin 4.00 Provedor Microsoft OLE DB para Oracle Proveedor Oracle para OLE DB (8.1.7.3.0) para Windows 2000/NT Proveedor Microsoft OLE DB para servicios de directorio de Microsoft Proveedor Microsoft OLE DB para los Servicios de Microsoft Index Server (requiere Microsoft Windows NT 4.0 Service Pack 4 posterior) Provedor Microsoft OLE DB para DB2 Provedor Microsoft OLE DB para Exchange Server

S S*
No No S

S
No No

S No

En el Editor de consultas, escriba el siguiente comando Transact-SQL para vincular a una instancia de SQL Server denominada SRVR002\ACCTG: Transact-SQL USE [master] GO EXEC master.dbo.sp_addlinkedserver @server = N'SRVR002\ACCTG', @srvproduct=N'SQL Server; GO Ejecute el siguiente cdigo para configurar el servidor vinculado con el fin de que use las credenciales de dominio del inicio de sesin que usa el servidor vinculado. Transact-SQL EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'SRVR002\ACCTG', @locallogin = NULL, @Useself = NTrue;GO

Pasos que se deben realizar despus de crear un servidor vinculado: Para probar el servidor vinculado: Ejecute el siguiente cdigo para probar la conexin al servidor vinculado. En este ejemplo se devuelven los nombres de las bases de datos del servidor vinculado. Transact-SQL SELECT name FROM [SRVR002\ACCTG].master.sys.sysdatabases; GO Escribir una consulta que une tabla desde un servidor vinculado:

Use nombres de cuatro partes para hacer referencia a un objeto de un servidor vinculado. Ejecute el cdigo siguiente para que se devuelva una lista de todos los inicios de sesin del servidor local y sus inicios de sesin coincidentes en el servidor vinculado. Transact-SQL SELECT local.name AS Local Logins, linked.name AS Linked Logins 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 sesin del servidor vinculado, se indica que el inicio de sesin no existe en el servidor vinculado. Estos inicios de sesin no podrn usar el servidor vinculado a menos que este se configure para pasar un contexto de seguridad distinto o el servidor vinculado acepte conexiones annimas.

You might also like