Sei sulla pagina 1di 8

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
conexin con otros servidores).
Origen de datos(es el servidor al cual vamos a acceder a travs de
Server)

la
SQL

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.

componentes de servidores vinculados

Un
Un

proveedor
proveedor OLE
OLE DB.
DB.

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

origen
origen de
de datos
datos OLE
OLE DB.
DB.

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

un
un Servidor
Servidor Vinculado
Vinculado (Linked
(Linked Server)
Server) es
es posibleconfigurar
posibleconfigurar con
con qu
qu
credenciales
se
conectarn
los
usuarios
al
Origen
de
Datos
externo,
lo
credenciales se conectarn los usuarios al Origen de Datos externo, lo cual,
cual, resulta
resulta de
de
gran
gran utilidad
utilidad si
si el
el Origen
Origen de
de Datos
Datos externos
externos lo
lo permite
permite (es
(es decir,
decir, si
si es
es susceptible
susceptible de
de
que
que le
le indiquemos
indiquemos usuario
usuario y
y password).
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
Un Servidor
Servidor Vinculado
Vinculado (Linked
(Linked Server)
Server) es
es posible
posible definir
definir varias
varias opciones,
opciones, que
que pueden
pueden resultar
resultar de
de gran
gran
utilidad.
En
particular,
las
opciones
de
un
Servidor
Vinculado
que
ms
se
suelen
utilizar
(ojo,
que
no
utilidad. En particular, las opciones de un Servidor Vinculado que ms se suelen utilizar (ojo, que no son
son las
las
nicas)
nicas) son:
son:

Data
Data Access
Access (Acceso
(Acceso a
a datos).
datos). Por
Por defecto
defecto es
es True.
True. Esta
Esta opcin
opcin tiene
tiene que
que estar
estar activada
activada para
para poder
poder acceder
acceder
a los
los datos
a
datos del
del Servidor
Servidor Vinculado,
Vinculado, como
como por
por ejemplo,
ejemplo, para
para ejecutar
ejecutar una
una simple
simple SELECT
SELECT sobre
sobre el
el Servidor
Servidor
Vinculado.
Vinculado. Puede
Puede resultar
resultar de
de utilidad,
utilidad, como
como medio
medio para
para deshabilitar
deshabilitar un
un Servidor
Servidor Vinculado,
Vinculado, ya
ya que
que sin
sin
necesidad de
de eliminarlo,
eliminarlo, conseguimos
conseguimos que
que se
se deje
deje de
de acceder
acceder a
a dicho
dicho Origen
Origen de
de Datos
Datos externo
externo (es
(es decir,
decir, al
al
necesidad
Servidor
Servidor Vinculado).
Vinculado).

RPC
RPC Out
Out (Salida
(Salida RPC).
RPC). Por
Por defecto
defecto es
es False.
False. Es
Es necesario
necesario activar
activar esta
esta opcin
opcin (RPC
(RPC Out
Out True)
True) para
para poder
poder
ejecutar
ejecutar Procedimientos
Procedimientos Almacenados
Almacenados remotos
remotos (es
(es decir,
decir, ejecutar
ejecutar Procedimientos
Procedimientos Almacenados
Almacenados en
en el
el
Servidor
Vinculado).
Servidor Vinculado).

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

Configuraciones de los servidores vinculados


Origen de datos

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

Nombre de proveedor

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

Permite transacciones
distribuidas

S
S*
No
No
S
S
No
No

S
No

Como crear un servidor vinculado


En el Editor de consultas, escriba el siguiente comando Transact-SQL para
vincular a una instancia de SQL Server denominadaSRVR002\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

Como crear un servidor


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

Use
Use nombres
nombres de
de cuatro
cuatro partes
partes para
para hacer
hacer referencia
referencia a
a un
un objeto
objeto de
de un
un servidor
servidor
vinculado.
Ejecute
el
cdigo
siguiente
para
que
se
devuelva
una
lista
de
todos
vinculado. Ejecute el cdigo siguiente para que se devuelva una lista de todos los
los
inicios
de
sesin
del
servidor
local
y
sus
inicios
de
sesin
coincidentes
en
el
servidor
inicios de sesin del servidor local y sus inicios de sesin coincidentes en el servidor
vinculado.
vinculado.
Transact-SQL
Transact-SQL
SELECT
SELECT local.name
local.name AS
AS Local
Local Logins,
Logins, linked.name
linked.name AS
AS Linked
Linked Logins
Logins
FROM
FROM master.sys.server_principals
master.sys.server_principals AS
AS local
local
LEFT
LEFT JOIN
JOIN [SRVR002\ACCTG].master.sys.server_principals
[SRVR002\ACCTG].master.sys.server_principals AS
AS linked
linked
ON
local.name
=
linked.name;
ON local.name = linked.name;
GO
GO
Cuando
Cuando se
se devuelve
devuelve NULL
NULL para
para el
el inicio
inicio de
de sesin
sesin del
del servidor
servidor vinculado,
vinculado, se
se indica
indica que
que
el
inicio
de
sesin
no
existe
en
el
servidor
vinculado.
Estos
inicios
de
sesin
el inicio de sesin no existe en el servidor vinculado. Estos inicios de sesin no
no
podrn
podrn usar
usar el
el servidor
servidor vinculado
vinculado a
a menos
menos que
que este
este se
se configure
configure para
para pasar
pasar un
un
contexto
contexto de
de seguridad
seguridad distinto
distinto o
o el
el servidor
servidor vinculado
vinculado acepte
acepte conexiones
conexiones annimas.
annimas.

Potrebbero piacerti anche