Partilhar via


Configuração do servidor: Consultas distribuídas ad hoc

Aplica-se a:SQL Server

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

As consultas distribuídas ad hoc usam as OPENROWSET funções e OPENDATASOURCE para se conectar a fontes de dados remotas que usam OLE DB. OPENROWSET e OPENDATASOURCE deve ser usado apenas para fazer referência a fontes de dados OLE DB acessadas com pouca frequência. Para todas as fontes de dados acessadas mais de várias vezes, defina um servidor vinculado.

Habilitar o uso de nomes ad hoc significa que qualquer conta autenticada do SQL Server pode acessar o provedor. Os administradores do SQL Server devem habilitar esse recurso para provedores seguros para qualquer conta local acessar.

Observações

Se você tentar fazer uma conexão ad hoc com Ad Hoc Distributed Queries desativado, você 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.

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

Consulte a comparação de Recursos: Banco de Dados SQL do Azure e Instância Gerenciada SQL do Azure para referência.

Examples

O exemplo a seguir habilita Ad Hoc Distributed Queries e consulta um servidor chamado Seattle1 usando a OPENROWSET função.

USE master;
GO

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'Ad Hoc Distributed Queries', 1;
GO

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

EXECUTE sp_configure 'show advanced options', 0;
GO

RECONFIGURE;
GO