1. UNIVERSIDAD NACIONAL
DE PIURA
ESCUELA TECNOLÓGICA SUPERIOR DE LA
UNIVERSIDAD NACIONAL DE PIURA
INFORME
Tema:
Servidores Vinculados
Curso:
Base de Datos II
Profesor:
Nima Ramos, Jonathan David
Integrantes:
Santos Mezones, Oscar
Guerrero Montero, José Miguel
Meza Parrilla, Michael
Carrera:
Análisis de Sistemas
2. 1
¿Qué es un servidor vinculado?
Un Servidor Vinculado es una definición de una Cadena de Conexión OLEDB y
un Proveedor OLEDB que asociamos a un nombre lógico, es decir, nos permite
definir un nombre para el servidor vinculado, y a dicho nombre especificarle qué
Proveedor OLEDB y qué Cadena de Conexión se debe utilizar para acceder al
correspondiente Origen de Datos OLEDB cuando se solicite acceso a dicho
Servidor Vinculado. Como hablamos, un Servidor Vinculado sirve para acceder a
Orígenes de Datos OLEDB desde SQL Server (es decir, para ejecutar Consultas
Distribuidas, ejecutar Procedimientos Almacenados en servidores remotos, etc.).
Como consecuencia de esto, se puede apreciar como ventaja de utilizar un Servidor
Vinculado frente a especificar los datos de conexión al vuelo (ej: OPENROWSET
u OPENDATASOURCE), el hecho de que el Servidor Vinculado actúa como una
capa de abstracción de los datos de conexión y del Proveedor OLEDB utilizado. Es
decir, una vez que hemos creado un Servidor Vinculado podemos acceder
repetidas veces a dicho Origen de Datos sin tener que volver a especificar los datos
de conexión (sólo el nombre del Servidor Vinculado). Es más, si accedemos a
dicho Origen de Datos en múltiples consultas en múltiples sitios, si en un futuro
deseamos que la conexión se realice a otro Origen de Datos (ej: por motivo de una
migración del mismo), es posible actualizar la definición del Servidor Vinculado
con nuevos datos de conexión sin necesidad de modificar cada consulta.
OLEDB
Un proveedor OLE DB es una biblioteca DLL que administra un origen de datos
específico e interactúa con él. Un origen de datos OLE DB identifica la base datos
específica a la que se puede tener acceso mediante OLE DB. Aunque los orígenes
de datos en los que se realizan consultas a través de definiciones de servidores
vinculados son bases de datos normales, existen proveedores OLE DB para una
amplia variedad de archivos y formatos de archivo. Se trata de archivos de texto,
datos de hojas de cálculo y los resultados de búsquedas de contenido de texto.
Nos permite desarrollar aplicaciones que obtienen acceso a diversos orígenes de
datos, tanto si son DBMS como si no lo son. OLE DB hace posible el acceso
universal a datos mediante interfaces COM compatibles con la funcionalidad
DBMS de un origen de datos determinado. COM reduce la duplicación innecesaria
3. 1
de servicios y proporciona interoperabilidad máxima, no sólo entre orígenes de
datos, sino también entre otras aplicaciones.
Consulta distribuida
La capacidad de obtener acceso a los datos de manera uniforme en múltiples
orígenes de datos (distribuidos). Los orígenes de datos pueden ser del mismo tipo
(como dos bases de datos de Access) o de diferente tipo (como una base de datos
de SQL Server y una base de datos de Access). El acceso uniforme significa que se
pueda ejecutar la misma consulta en todos los orígenes de datos con iguales
resultados.
Acceso no DBMS
La capacidad de hacer accesibles los orígenes de datos no DBMS a las aplicaciones
de base de datos. Los ejemplos de orígenes de datos DBMS incluyen IMS, DB2,
Oracle, SQL Server, Access y Paradox. Algunos ejemplos de orígenes de datos no
DBMS son: información en sistemas de archivos, correo electrónico, hojas de
cálculo y herramientas de administración de proyectos.
Utilidad
Normalmente, los servidores vinculados se utilizan para tratar consultas
distribuidas. Cuando una aplicación cliente ejecuta una consulta distribuida
mediante un servidor vinculado, SQL Server analiza el comando y envía peticiones
a OLE DB. La petición de conjuntos de filas se puede realizar como una consulta
al proveedor o abriendo una tabla base del proveedor.
Para que un origen de datos devuelva información mediante un servidor vinculado,
el proveedor OLE DB (DLL) para ese origen de datos debe encontrarse en el
mismo servidor que la instancia de SQL Server.
Cuando se utiliza un proveedor OLE DB de otro fabricante, la cuenta con la que se
ejecuta el servicio de SQL Server debe tener permisos de lectura y ejecución para
el directorio y todos los subdirectorios en los que esté instalado el proveedor.
Administrar proveedores
4. 1
Existe un conjunto de opciones para controlar cómo SQL Server carga y utiliza
proveedores OLE DB que se hayan especificado en el registro.
Cuando configure un servidor vinculado, registre la información de la conexión y
del origen de datos con SQL Server. Una vez realizado el registro, se puede hacer
referencia a ese origen de datos con un único nombre lógico.
Puede utilizar procedimientos almacenados y vistas de catálogo para administrar
definiciones de servidores vinculados:
Cree una definición de servidor vinculado ejecutando sp_addlinkedserver.
Vea información acerca de los servidores vinculados definidos en una instancia
específica de SQL Server ejecutando una consulta en las vistas de catálogo del
sistema sys.servers.
Elimine una definición de servidor vinculado ejecutando sp_dropserver. También
puede utilizar este procedimiento almacenado para quitar servidores remotos.
También puede definir servidores vinculados mediante SQL Server Management
Studio. En el Explorador de objetos, haga clic con el botón secundario en Objetos
de servidor, seleccione Nuevo y, a continuación, Servidor vinculado. Para eliminar
una definición de servidor vinculado, haga clic con el botón secundario en el
nombre del servidor vinculado y seleccione Eliminar.
Cuando ejecute una consulta distribuida en un servidor vinculado, incluya el
nombre de cuatro partes completo de una tabla para cada origen de datos en el que
desee realizar la consulta. Este nombre de cuatro partes debe tener el formato.
Los servidores vinculados ofrecen las siguientes ventajas:
Capacidad de obtener acceso a datos fuera de SQL Server.
Capacidad de ejecutar consultas distribuidas, actualizaciones, comandos y
transacciones en orígenes de datos heterogéneos en toda la organización.
Capacidad de tratar diferentes orígenes de datos de manera similar.
Data Access (Acceso a datos). Por defecto es True. Esta opción 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
5. 1
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 opción
(RPC Out True) para poder ejecutar Procedimientos Almacenados remotos (es
decir, ejecutar Procedimientos Almacenados en el Servidor Vinculado).
La opción de RPC Out es bastante importante. Por ejemplo, para ejecutar SQL
Dinámico en un Servidor Vinculado (es decir, ejecutar SQL Dinámico en un
servidor remoto), es necesario activar RPC Out (Salida RPC) en las opciones del
Servidor Vinculado, indiferentemente de que utilicemos sp_executesqlN’Codigo
Dinámico’ o EXEC(’Codigo Dinámico’) AT. Quizás pueda parecer incorrecto que
RPC Out esté deshabilitado por defecto. Sin embargo, esta es una muy buena
práctica 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 algún usuario pueda visualizar datos.
Las principales diferencias entre diferencia entre utilizar Servidores Vinculados
(con OPENQUERY o con Notación de 4 partes) o especificar los datos de
conexión al vuelo (con OPENROWSET o con OPENDATASOURCE y Notación
de 4 partes), son precisamente que con los Servidores Vinculados podemos realizar
los Mapeos de Inicios de Sesión y personalizar las opciones del Servidor
Vinculado (como Data Access y RPC Out). Si especificamos los datos de conexión
al vuelo, será necesario hard-codear (es decir, escribir en el código de forma fija)
los datos de conexión (por lo tanto, serán los mismos para todos los usuarios
excepto que nos montemos algún invento) y no podemos personalizar opciones
como Data Access o RPC Out, es decir, no podríamos limitar que los usuario
ejecuten un Procedimiento Almacenado remoto o deshabilitar el acceso a datos
para realizar una operación de mantenimiento.
6. 1
En la siguiente ilustración se muestran los conceptos básicos de una configuración
con servidores vinculados.