SERVIDORES VINCULADOS

Embed Size (px)

Citation preview

SERVIDORES VINCULADOS

SERVIDORES VINCULADOS 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 toda la organizacin.Capacidad de tratar diferentes orgenes de datos de manera similar.

componentes de servidores vinculadosUn 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 posibleconfigurar 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 posibleconfigurar 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 podemosconfigurar un Usuario y Contraseaespecfico, o bien, podemosconfigurar 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, quesi 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).

Configuraciones de los servidores vinculadosOrigen de datosNombre de proveedorPermite transacciones distribuidasSQL Server7.0 posteriorProvedor OLE DB de Microsoft SQL Server Native ClientSOrgenes de datos ODBCProvedor Microsoft OLE DB para ODBCS*Bases de datos de Microsoft Access (Jet)Proveedor Microsoft OLE DB para Jet versin 4.00NoHojas de clculo de Microsoft ExcelProveedor Microsoft OLE DB para Jet versin 4.00NoBases de datos OracleProvedor Microsoft OLE DB para OracleSBases de datos Oracle**Proveedor Oracle para OLE DB (8.1.7.3.0) para Windows 2000/NTSDirectorio de Microsoft Windows2000Proveedor Microsoft OLE DB para servicios de directorio de MicrosoftNoSistema de archivos local (mediante Servicios de Index Server)Proveedor Microsoft OLE DB para los Servicios de Microsoft Index Server (requiere Microsoft Windows NT4.0 Service Pack 4 posterior)NoBases de datos IBM DB2Provedor Microsoft OLE DB para DB2SMicrosoft Exchange ServerProvedor Microsoft OLE DB para Exchange ServerNoComo crear un servidor vinculadoEn el Editor de consultas, escriba el siguiente comando Transact-SQL para vincular a una instancia de SQL Server denominadaSRVR002\ACCTG:

Transact-SQLUSE [master]GOEXEC 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-SQLEXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'SRVR002\ACCTG', @locallogin = NULL, @Useself = NTrue;GO

Como crear un servidor vinculadoPasos 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-SQLSELECT name FROM [SRVR002\ACCTG].master.sys.sysdatabases;GOEscribir 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-SQLSELECT local.name AS Local Logins, linked.name AS Linked LoginsFROM master.sys.server_principals AS localLEFT JOIN [SRVR002\ACCTG].master.sys.server_principals AS linkedON local.name = linked.name;GOCuando 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.