ad hoc distributed queries (opção de configuração do servidor)

Aplica-se a:SQL Server

Por padrão, o SQL Server não permite consultas distribuídas ad hoc que usam OPENROWSET e OPENDATASOURCE. Quando essa opção é definida como 1, o SQL Server permite acesso ad hoc. Quando essa opção não é definida ou é definida como 0, o SQL Server não permite acesso ad hoc.

As consultas distribuídas ad hoc usam as funções OPENROWSET e OPENDATASOURCE para se conectarem a fontes de dados remotas que usam OLE DB. OPENROWSET e OPENDATASOURCE devem ser usados apenas para fazer referência a fontes de dados OLE DB que são acessadas com pouca frequência. Para qualquer fonte de dados que será acessada muitas vezes, defina um servidor vinculado.

A habilitação do uso de nomes ad hoc indica que qualquer logon autenticado para o SQL Server pode acessar o provedor. Os administradores do SQL Server devem habilitar esse recurso para provedores seguros, que podem ser acessados por qualquer logon local.

Comentários

Se você tentar fazer uma conexão ad hoc com a opção consultas distribuídas ad hoc desabilitada, verá o seguinte erro:

Msg 7415, Level 16, State 1, Line 1  
  
Ad hoc access to OLE DB provider 'Microsoft.ACE.OLEDB.12.0' has been denied. You must access this provider through a linked server.  

Exemplos

O exemplo a seguir habilita consultas distribuídas ad hoc e, em seguida, consulta um servidor chamado Seattle1 usando a função OPENROWSET .

sp_configure 'show advanced options', 1;  
RECONFIGURE;
GO 
sp_configure 'Ad Hoc Distributed Queries', 1;  
RECONFIGURE;  
GO  
  
SELECT a.*  
FROM OPENROWSET('MSOLEDBSQL', 'Server=Seattle1;Trusted_Connection=yes;',  
     'SELECT GroupName, Name, DepartmentID  
      FROM AdventureWorks2022.HumanResources.Department  
      ORDER BY GroupName, Name') AS a;  
GO  

Banco de Dados SQL do Azure e Instância Gerenciada de SQL do Azure

Confira Comparação de recursos: Banco de Dados SQL do Azure e Instância Gerenciada de SQL do Azure para referência.

Confira também