Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
la
SQL
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
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).
Nombre de proveedor
Permite transacciones
distribuidas
S
S*
No
No
S
S
No
No
S
No
Transact-SQL
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname =
N'SRVR002\ACCTG', @locallogin = NULL, @Useself = NTrue;GO
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.