Identificar un origen de datos con un nombre ad hoc

Los nombres ad hoc se pueden usar como referencia de tabla si no se hace referencia al origen de datos OLE DB con una frecuencia que justifique la configuración de un servidor vinculado. En SQL Server 2005, se pueden utilizar las funciones OPENROWSET y OPENDATASOURCE para obtener un nombre ad hoc.

El control de acceso a un origen de datos específico sólo está disponible a través de servidores vinculados. Dado que este control no está disponible para nombres ad hoc, estos nombres se deshabilitan de forma predeterminada para todos los proveedores OLE DB excepto el proveedor de SQL Native Client.

ms187873.note(es-es,SQL.90).gifImportante:
Para cada instancia de SQL Server, los miembros de la función fija de servidor sysadmin pueden habilitar o deshabilitar el uso de nombres de conector ad hoc para un proveedor OLE DB utilizando la opción de proveedor DisallowAdhocAccess y la opción de configuración del servidor Ad Hoc Distributed Queries. Cuando se habilita un acceso ad hoc, cualquier usuario que haya iniciado una sesión en esa instancia puede ejecutar instrucciones SQL que contengan nombres de conector ad hoc que hagan referencia a cualquier origen de datos en la red al que se pueda obtener acceso mediante el proveedor OLE DB. Para controlar el acceso a orígenes de datos, los miembros de la función sysadmin pueden deshabilitar el acceso ad hoc para ese proveedor OLE DB, limitando así a los usuarios sólo a los orígenes de datos a los que se hace referencia mediante nombres de servidores vinculados definidos por los administradores. De forma predeterminada, el acceso ad hoc está habilitado para el proveedor OLE DB de SQL Native Client y deshabilitado para el resto de proveedores OLE DB.

Tanto OPENROWSET como OPENDATASOURCE proporcionan información de conexión ad hoc. Mediante estas funciones, se puede especificar toda la información necesaria para obtener acceso al origen de datos OLE DB. Sin embargo, OPENROWSET y OPENDATASOURCE no se pueden usar indistintamente.

  • La función OPENROWSET se puede utilizar allí donde el proveedor OLE DB devuelva conjuntos de filas, ya sea especificando un nombre de tabla (o vista) o especificando una consulta que devuelva un conjunto de filas. OPENROWSET se puede usar en lugar de un nombre de tabla o vista en una instrucción Transact-SQL.
  • Utilice OPENDATASOURCE sólo cuando el proveedor expone conjuntos de filas y utiliza la notación catalog**.schema.object. OPENDATASOURCE se puede utilizar en las mismas ubicaciones de sintaxis de Transact-SQL que un nombre de servidor vinculado. Por tanto, en la notación catalog.schema.**object, OPENDATASOURCE se puede utilizar como la primera parte de un nombre de cuatro componentes que haga referencia a una tabla o una vista.

OPENROWSET y OPENDATASOURCE se deben usar únicamente para obtener acceso a datos externos en situaciones ad hoc en las que no es posible configurar un servidor vinculado permanente. Estas funciones no ofrecen toda la funcionalidad que hay disponible con un servidor vinculado, como la administración de las asignaciones de inicio de sesión, la posibilidad de consultar los metadatos del servidor vinculado y la posibilidad de configurar varios parámetros de conexión, como los valores de tiempo de espera.

ms187873.security(es-es,SQL.90).gifNota de seguridad:
Al conectarse a otro origen de datos, SQL Server suplanta adecuadamente los inicios de sesión con autenticación de Windows. Sin embargo, SQL Server no puede suplantar inicios de sesión con autenticación de SQL Server. Por tanto, para inicios de sesión con autenticación de SQL Server, SQL Server puede obtener acceso a otro origen de datos, como archivos, orígenes de datos no relacionales como Active Directory, empleando el contexto de seguridad de la cuenta de Windows bajo la cual se está ejecutando el servicio de SQL Server. Esto puede dar a dichos inicios de sesión acceso a otro origen de datos para el que no tienen permisos, pero la cuenta en la que se ejecuta el servicio de SQL Server sí los tiene. Esta posibilidad debe contemplarse cuando se utilicen inicios de sesión con autenticación de SQL Server.

Los argumentos de OPENROWSET y OPENDATASOURCE no admiten variables. Los argumentos se deben especificar como literales de cadena. Si las variables se deben pasar como argumentos, se puede crear dinámicamente una cadena de consulta que contenga las variables y ejecutarla mediante la instrucción EXECUTE.

Vea también

Conceptos

Obtener acceso a datos externos
Consultas distribuidas

Otros recursos

OPENDATASOURCE (Transact-SQL)
OPENROWSET (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005