OPENDATASOURCE (Transact-SQL)

Actualizado: 14 de abril de 2006

Proporciona información de conexión ad hoc como parte de un nombre de objeto de cuatro partes sin utilizar un nombre de servidor vinculado.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

OPENDATASOURCE ( provider_name, init_string )

Argumentos

  • provider_name
    Es el nombre registrado como PROGID del proveedor OLE DB utilizado para tener acceso al origen de datos. provider_name es de tipo char y no tiene valor predeterminado.
  • init_string
    Es la cadena de conexión que se pasa a la interfaz IDataInitialize del proveedor de destino. La sintaxis de la cadena del proveedor se basa en pares de palabra clave y valor separados por signos de punto y coma; por ejemplo: 'palabraClave1=valor;palabraClave2=valor'.

    Para conocer los pares de palabra clave y valor admitidos, vea Microsoft Data Access SDK. En esta documentación se define la sintaxis básica. En la siguiente tabla se muestran las palabras clave más utilizadas en el argumento init_string.

    Palabra clave Propiedad OLE DB Valores válidos y descripción

    Origen de datos

    DBPROP_INIT_DATASOURCE

    Nombre del origen de datos al que se va a conectar. Distintos proveedores lo interpretan de formas distintas. Para un proveedor OLE DB de SQL Native Client, indica el nombre del servidor. Para un proveedor OLE DB para Jet, indica la ruta de acceso completa al archivo .mdb o al archivo .xls.

    Ubicación

    DBPROP_INIT_LOCATION

    Ubicación de la base de datos a la que se va a conectar.

    Propiedades extendidas

    DBPROP_INIT_PROVIDERSTRING

    Cadena de conexión específica del proveedor.

    Tiempo de espera de conexión

    DBPROP_INIT_TIMEOUT

    Valor de tiempo de espera después del cual se produce un error en el intento de conexión.

    Id. de usuario

    DBPROP_AUTH_USERID

    Id. de usuario que se va a utilizar para la conexión.

    Contraseña

    DBPROP_AUTH_PASSWORD

    Contraseña que se va a utilizar para la conexión.

    Catálogo

    DBPROP_INIT_CATALOG

    Nombre del catálogo inicial o predeterminado al conectarse al origen de datos.

    Seguridad integrada

    DBPROP_AUTH_INTEGRATED

    SSPI, para especificar la autenticación de Windows

Notas

OPENDATASOURCE se puede utilizar para tener acceso a datos remotos desde orígenes de datos de OLE DB sólo cuando la opción de registro DisallowAdhocAccess está establecida explícitamente en 0 para el proveedor especificado y la opción de configuración avanzada Ad Hoc Distributed Queries está habilitada. Cuando estas opciones no están establecidas, el comportamiento predeterminado no permite acceso ad hoc.

Es posible utilizar la función OPENDATASOURCE en las mismas ubicaciones de la sintaxis Transact-SQL de un nombre del servidor vinculado. Por tanto, se puede utilizar OPENDATASOURCE como la primera parte de un nombre de cuatro partes que hace referencia a un nombre de tabla o vista en una instrucción SELECT, INSERT, UPDATE o DELETE, o a un procedimiento almacenado remoto en una instrucción EXECUTE. Cuando se ejecutan procedimientos almacenados remotos, OPENDATASOURCE debe hacer referencia a otra instancia de SQL Server. OPENDATASOURCE no acepta variables como argumentos.

Al igual que la función OPENROWSET, OPENDATASOURCE sólo debe hacer referencia a orígenes de datos OLE DB a los que se tiene acceso con poca frecuencia. Defina un servidor vinculado para los orígenes de datos a los que tiene acceso varias veces. Ni OPENDATASOURCE ni OPENROWSET proporcionan toda la funcionalidad de definiciones de servidores vinculados, como la administración de seguridad y la capacidad de consultar información de catálogos. Toda la información de conexión, incluidas las contraseñas, se debe proporcionar siempre que se llama OPENDATASOURCE.

ms179856.note(es-es,SQL.90).gifImportante:
La Autenticación de Windows es mucho más segura que la Autenticación de SQL Server. Siempre que sea posible, debe utilizar la Autenticación de Windows. OPENDATASOURCE no se debe utilizar con contraseñas explícitas en la cadena de conexión.

Permisos

Todos los usuarios pueden ejecutar OPENDATASOURCE. Los permisos que se utilizan para conectarse al servidor remoto se determinan a partir de la cadena de conexión.

Ejemplos

En el ejemplo siguiente se crea una conexión ad hoc a la instancia de Payroll de SQL Server en el servidor London, y se consulta la tabla AdventureWorks.HumanResources.Employee.

SELECT *
FROM OPENDATASOURCE('SQLNCLI',
    'Data Source=London\Payroll;Integrated Security=SSPI')
    .AdventureWorks.HumanResources.Employee

Vea también

Referencia

OPENROWSET (Transact-SQL)
sp_addlinkedserver (Transact-SQL)

Otros recursos

Consultas distribuidas
Identificar un origen de datos con un nombre ad hoc

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

14 de abril de 2006

Contenido nuevo:
  • Se agregó el ejemplo.