Configuración de permisos para acceder a datos remotos desde un origen de datos OLEDB en SQL Server

En este artículo se describe cómo deshabilitar las consultas ad hoc que usan o OPENROWSET la OPENDATASOURCE funcionalidad en SQL Server.

Versión del producto original: SQL Server
Número de KB original: 327489

Resumen

Puede usar OPENROWSET instrucciones o OPENDATASOURCE en SQL Server como método ad hoc para conectarse y acceder a datos desde un proveedor OLEDB remoto, incluida una instancia remota de SQL Server. Estas instrucciones se pueden usar para tener acceso a datos remotos desde orígenes de datos OLE DB solo cuando la opción Del Registro DisallowAdhocAccess se establece explícitamente en 0 para el proveedor especificado y la opción de configuración avanzada Consultas distribuidas Ad Hoc está habilitada. Cuando no se establecen estas opciones, el comportamiento predeterminado no permite el acceso ad hoc.

En este artículo se proporcionan detalles adicionales sobre cómo configurar DisallowAdhocAccess a través de SQL Server Management Studio y la configuración del Registro, así como el comportamiento predeterminado.

Deshabilitación del acceso ad hoc mediante SQL Server Management Studio

Especificar la DisallowAdHocAccess propiedad para el proveedor en SQL Server Management Studio (SSMS)

  1. Abra SSMS y expanda Proveedores en Servidores vinculados.

  2. Haga clic para seleccionar el proveedor OLE DB que desea usar y, a continuación, seleccione el botón Opciones de proveedor.

  3. Desplácese hacia abajo y active la casilla No permitir acceso adhoc propiedad y seleccione Aceptar.

Deshabilitación del acceso ad hoc mediante el editor del Registro

Importante

Esta sección, método o tarea contiene pasos que le indican cómo modificar el Registro. No obstante, pueden producirse problemas graves si modifica el registro de manera incorrecta. Por lo tanto, asegúrese de que sigue estos pasos con atención. Para la protección añadida, realice una copia de seguridad del Registro antes de modificarlo. A continuación, puede restaurar el Registro si se produce un problema. Para obtener más información sobre cómo realizar copias de seguridad y restaurar el registro, vea Cómo hacer copia de seguridad y restaurar el registro en Windows.

Después de guardar un servidor vinculado, la DisallowAdHocAccess propiedad solo se puede establecer mediante una configuración del Registro.

Agregar el valor DisallowAdHocAccess

Para agregar el DisallowAdHocAccess valor, siga estos pasos:

  1. Inicia el Editor del Registro.

  2. Busque y seleccione la clave en el Registro: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers<ProviderName>

    Ejemplo: Si intenta cambiar esto para el proveedor OLEDB de Microsoft para controladores ODBC, la clave será:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\MSDASQL

  3. En el menú Editar , seleccione Agregar valor y agregue este valor del Registro:

    Value name: DisallowAdHocAccess
    Data type: REG_DWORD
    Radix: Hex
    Value data: 1
    
  4. Salga del Editor del Registro.

Habilitación del acceso remoto ad hoc

Después de asegurarse de que la opción de configuración avanzada Consultas distribuidas Ad Hoc está habilitada, debe establecer la opción Del Registro DisallowAdhocAccess en 0 para el proveedor especificado.

Para modificar un valor existente DisallowAdHocAccess , siga estos pasos:

  1. Inicia el Editor del Registro.

  2. Busque y seleccione el DisallowAdHocAccess valor en la clave del Registro: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers<ProviderName>

    Ejemplo: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\Microsoft.ACE.OLEDB.12.0

  3. En el menú Editar , seleccione DWORD, escriba 1 y, a continuación, seleccione Aceptar.

  4. Salga del Editor del Registro. Para una instancia con nombre, la clave del Registro es diferente: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instance Name>\Providers\<ProviderName>

Requisito de reinicio

Un cambio del valor de DisallowAdHocAccess 1 a 0 no requeriría un reinicio del servicio SQL, mientras que un cambio de 0 a 1 tendría que tener un reinicio del servicio SQL para que el cambio realizado se haga efectivo.

Comportamiento predeterminado

El acceso ad hoc de orígenes de datos OLE BD remotos mediante OPENROWSET y OPENDATASOURCE está deshabilitado de forma predeterminada y no es necesaria ninguna configuración adicional. Debe usar los procedimientos descritos en el artículo solo si este acceso remoto se ha habilitado explícitamente.

Nota:

Con la configuración predeterminada, si intenta llamar a estas funciones en consultas ad hoc, recibirá un mensaje de error similar al siguiente mensaje: Servidor: Msg 7415, Nivel 16, Estado 1, Línea 1 acceso ad hoc al proveedor OLE DB "Microsoft.Jet.OLEDB.4.0" se ha denegado. El acceso debe realizarse mediante un servidor vinculado.

En otras palabras, con la DisallowAdHocAccess propiedad establecida en 1 para un proveedor OLE DB específico, debe usar una configuración de servidor vinculado predefinida para el proveedor OLE DB específico. Ya no puede pasar un cadena de conexión ad hoc que haga referencia a ese proveedor a o OPENROWSET a la OPENDATASOURCE función .

Consulte también