ad hoc distributed queries (option de configuration de serveur)
Par défaut, SQL Server n'autorise pas les requêtes distribuées ad hoc avec les fonctions OPENROWSET et OPENDATASOURCE. Lorsque cette option est définie sur 1, SQL Server autorise l'accès d'égal à égal. Lorsque cette option n'est pas définie ou lorsqu'elle est définie sur 0, SQL Server ne permet pas non plus l'accès d'égal à égal.
Les requêtes distribuées ad hoc utilisent les fonctions OPENROWSET et OPENDATASOURCE pour la connexion aux sources de données distantes OLE DB. OPENROWSET et OPENDATASOURCE doivent être utilisés uniquement pour faire référence à des sources de données OLE DB faisant l'objet d'accès peu fréquents. Pour les sources de données faisant l'objet d'accès plus fréquents, définissez un serveur lié.
Important
L'activation de l'utilisation de noms ad hoc signifie que toute connexion authentifiée à SQL Server peut accéder au fournisseur. SQL Server Les administrateurs doivent activer cette fonctionnalité pour les fournisseurs accessibles en toute sécurité via une connexion locale.
Notes
Toute tentative d’établissement d’une connexion ad hoc alors que l’option Requêtes distribuées ad hoc n’est pas activée génère une erreur : Msg 7415, Niveau 16, État 1, Ligne 1
L'accès d'égal à égal au fournisseur OLE DB « Microsoft.ACE.OLEDB.12.0 » a été refusé. Vous devez accéder à ce fournisseur par le biais d'un serveur lié.
Exemples
L'exemple suivant active des requêtes distribuées ad hoc puis interroge un serveur nommé Seattle1
à l'aide de la fonction OPENROWSET
.
sp_configure 'show advanced options', 1;
RECONFIGURE;
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
Voir aussi
Options de configuration du serveur (SQL Server)
Serveurs liés (Moteur de base de données)
OPENROWSET (Transact-SQL)
OPENDATASOURCE (Transact-SQL)
sp_addlinkedserver (Transact-SQL)