Opzione di configurazione del server ad hoc distributed queries

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)noDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Per impostazione predefinita, SQL ServerSQL Server non prevede l'utilizzo query distribuite ad hoc contenenti le funzioni OPENROWSET e OPENDATASOURCE. Quando questa opzione è impostata su 1, in SQL ServerSQL Server è possibile l'accesso ad hoc. Quando questa opzione non è impostata o è impostata su 0, in SQL ServerSQL Server non è possibile l'accesso ad hoc.

Le query distribuite ad hoc utilizzano le funzioni OPENROWSET e OPENDATASOURCE per connettersi alle origini dei dati remote che utilizzano OLE DB. È consigliabile utilizzare le funzioni OPENROWSET e OPENDATASOURCE solo per fare riferimento a origini dei dati OLE DB a cui si accede raramente. Per le origini dei dati a cui è necessario accedere con maggiore frequenza, è possibile definire un server collegato.

Importante

Se si consente l'utilizzo dei nomi ad hoc, tutti gli account di accesso a SQL ServerSQL Server autenticati potranno accedere al provider. SQL ServerSQL Server richiede che gli amministratori abilitino questa funzionalità per i provider a cui è possibile accedere in modo sicuro tramite qualsiasi account di accesso locale.

Osservazioni

Se si prova a eseguire una connessione ad hoc con l'opzione Query distribuite ad hoc abilitate non abilitata, viene restituito l'errore: Messaggio 7415, livello 16, stato 1, riga 1

L'accesso ad hoc al provider OLE DB "Microsoft.ACE.OLEDB.12.0" è stato negato. Accedere al provider tramite un server collegato.

Esempi

Nell'esempio seguente viene abilitata l'opzione ad hoc distributed queries e, successivamente, viene eseguita una query su un server denominato Seattle1 utilizzando la funzione OPENROWSET.

sp_configure 'show advanced options', 1;  
RECONFIGURE;
GO 
sp_configure 'Ad Hoc Distributed Queries', 1;  
RECONFIGURE;  
GO  

SELECT a.*  
FROM OPENROWSET('SQLNCLI', 'Server=Seattle1;Trusted_Connection=yes;',  
     'SELECT GroupName, Name, DepartmentID  
      FROM AdventureWorks2012.HumanResources.Department  
      ORDER BY GroupName, Name') AS a;  
GO  

Vedere anche

Opzioni di configurazione del server (SQL Server)
Server collegati (Motore di database)
OPENROWSET (Transact-SQL)
OPENDATASOURCE (Transact-SQL)
sp_addlinkedserver (Transact-SQL)