Skip to main content

Établir des connexions de base de données dans ArcGIS Insights in ArcGIS Enterprise – partie 2

Lorsque vous essayez d’établir des connexions de base de données à l’aide d’ArcGIS Insights in ArcGIS Enterprise, il est possible que vous vous retrouviez souvent aux prises avec des erreurs de type « hôte non valide », « problème de connexion de données » ou « un problème est survenu ». Il n’est pas toujours facile de déterminer exactement ce qui n’a pas fonctionné. D’après mon expérience, vous pouvez améliorer vos chances de réussir votre connexion à une base de données en suivant les cinq étapes décrites dans ce guide.

Dans la première partie de ce guide, nous avons présenté les cinq étapes pour réussir une connexion de base de données dans la version d’ArcGIS Insights pour ArcGIS Enterprise. Nous y avons couvert les deux premières étapes en détail.

  1. Vérifier que toutes les exigences sont remplies
  2. Inscrire le type de magasin de données relationnelles dans ArcGIS Enterprise
  3. Confirmer que le serveur de base de données autorise les connexions à partir du serveur d’hébergement
  4. Préparer l’utilisateur de base de données utilisé lors de la connexion
  5. Remplir correctement les paramètres lors de la création de la connexion à la base de données

Passons maintenant aux trois étapes restantes.

Étape 3 : Confirmer que le serveur de base de données autorise les connexions à partir du serveur d’hébergement

Dans cette étape, j’utiliserai SQL Server comme exemple pour expliquer la façon de vérifier si votre serveur de base de données permet des connexions à partir d’Insights in ArcGIS Enterprise. Les mêmes principes peuvent être appliqués à d’autres bases de données relationnelles.

Tout d’abord, pour clarifier les choses, Insights in ArcGIS Enterprise se connecte à une base de données par l’intermédiaire du serveur d’hébergement du portail, c’est pourquoi nous téléversons les fichiers clients de la base de données (c’est-à-dire les pilotes JDBC) dans ArcGIS Server. Par conséquent, lorsque nous vérifions si un serveur de base de données permet des connexions à partir d’Insights, nous vérifions en fait si le serveur de base de données permet des connexions à partir du serveur d’hébergement.

Supposons que je souhaite me connecter à une instance de SQL Server appelée dbserver.domain.local\SQLEXPRESS, où dbserver.domain.local est le nom de domaine complet du serveur et SQLEXPRESS est le nom de l’instance. Cette instance est configurée avec un port statique 1433.

(Prenez note qu’avec SQL Server, vous pouvez ne pas avoir d’instance nommée mais utiliser l’instance par défaut, auquel cas vous précisez uniquement le nom du serveur pour la connexion. En cas de doute, consultez votre administrateur de base de données.)

La première question à se poser est la suivante : « Puis-je exécuter dbserver.domain.local sur l’ordinateur du serveur d’hébergement? » De nombreuses commandes peuvent aider à répondre à cette question, par exemple Ping, Telnet et Nslookup. Vous pouvez faire des recherches sur Internet pour en savoir plus, au besoin.

Si je peux atteindre le serveur de base de données à partir de mon serveur d’hébergement, je dois ensuite me poser la question suivante : « Puis-je me connecter à ce serveur de base de données à l’aide du port 1433? » J’exécute souvent la commande Telnet hostname port pour cette tâche. En cas d’échec, je recevrai un message comme celui figurant ci-dessous. Si cela fonctionne, l’invite de commande se transformera temporairement en une fenêtre vide.

Échec de la connexion au serveur de base de données à l’aide du port 1433

De nombreuses causes peuvent entraîner l’échec du test ci-dessus. De manière générale, ces causes peuvent être classées en deux catégories : les problèmes touchant la configuration du serveur de base de données, et ceux touchant la configuration du réseau.

Les problèmes de configuration du réseau peuvent se décliner comme suit (pour ne citer que quelques exemples) : l’ordinateur du serveur d’hébergement est incapable de reconnaître le nom du serveur de base de données (alors qu’il reconnaît l’adresse IP du serveur); le pare-feu du serveur de base de données autorise uniquement le trafic entrant par le port 1433 à partir de certaines adresses IP; l’antivirus bloque le trafic réseau à chaque extrémité; etc. Les administrateurs de réseau sont les mieux placés pour gérer de tels problèmes.

Les problèmes de configuration du serveur de base de données, bien qu’ils soient aussi des problèmes de configuration du réseau, peuvent retomber sur les épaules des administrateurs de base de données, car ils touchent directement une instance de base de données installée sur l’ordinateur du serveur. Par exemple, si mon test de connexion telnet <server name> <port> échoue constamment, mais que je peux résoudre le nom du serveur de base de données et que les pare-feu sont désactivés, je devrais vérifier dans le gestionnaire de configuration de SQL Server si le protocole TCP/IP est activé ou non pour mon instance SQLEXPRESS.

Protocoles pour une instance de SQL Server

Si vous êtes l’administrateur du SIG, vous devrez peut-être compter sur votre responsable informatique ou votre administrateur de bases de données à cette étape. Avant de communiquer avec eux, vous pouvez tenter le test suivant : installer un client de base de données sur l’ordinateur du serveur d’hébergement (p. ex., le pilote ODBC 17 pour SQL Server) ainsi qu’une application de gestion de base de données (p. ex., SQL Server Management Studio) et voir si vous pouvez établir une connexion dans l’application de gestion avec le nom du serveur, le nom de l’instance et l’identifiant d’utilisateur de base de données fournis par votre service informatique ou votre administrateur de base de données. Si cela ne fonctionne pas, c’est que vous devez régler des problèmes de configuration du réseau ou du serveur de base de données.

Étape 4 : Préparer l’utilisateur de base de données utilisé lors de la connexion

Même si vous pouvez vous connecter à la base de données de ciblage en utilisant une application de gestion de base de données à partir du serveur d’hébergement du portail, vous pouvez recevoir une erreur de type « un problème est survenu » lorsque vous essayez de créer une connexion de base de données dans Insights.

Un test à réaliser consiste à demander à votre administrateur de bases de données de créer une connexion de base de données dans Insights en utilisant son identifiant de super-utilisateur (p. ex. un identifiant d’administrateur système). Si cela fonctionne, le problème touche votre utilisateur de base de données.

Portez d’abord une attention au fait qu’avec SQL Server, l’authentification Windows n’est pas prise en charge actuellement dans Insights, conformément aux indications de la documentation d’Esri. Vous devez utiliser un utilisateur SQL Server plutôt qu’un utilisateur de domaine pour les connexions dans Insights.

Si cela n’est pas la cause du problème, il est probable que votre utilisateur de connexion ne dispose pas des privilèges appropriés. Il existe deux types d’opérations sur les données dans ArcGIS Insights :

  • Se connecter au contenu d’une base de données relationnelle et le parcourir, sans mise en cache des données;
  • Se connecter au contenu d’une base de données relationnelle et le parcourir, avec une mise en cache des données.

Avec la mise en cache des données, l’utilisateur de la connexion a besoin de plus de privilèges, notamment pour la création de tables dans la base de données. Dans l’article Privilèges de base de données requis, vous trouverez des codes SQL permettant d’accorder des privilèges aux utilisateurs en lecture-écriture et aux utilisateurs en lecture seule pour toutes les bases de données relationnelles prises en charge.

Étape 5 : Remplir correctement les propriétés lors de la création de la connexion à la base de données

Nous serons prêts à créer une connexion à la base de données dès que nous aurons choisi le type de base de données avec lequel nous allons travailler. Voici un formulaire permettant d’établir une connexion à une base de données SQL Server appelée monsterdb hébergée sur l’instance SQLEXPRESS du serveur de base de données dbserver.domain.local.

Connexion à une base de données SQL Server

Dans le cas des connexions aux bases de données SQL Server, le nom d’instance peut s’appliquer ou non, selon que vous travaillez avec une instance nommée ou avec l’instance par défaut. De plus, le numéro de port peut être vide, en particulier lorsque l’instance utilise des ports dynamiques.

Lorsque le type de base de données change, ce formulaire est mis à jour en conséquence.

Connexion de bases de données avec Oracle, PostgreSQL et SAP HANA

Les propriétés de connexion obligatoires, marquées d’un astérisque, varient d’un type de base de données à l’autre. Les exigences relatives aux connexions de bases de données dans Insights doivent généralement correspondre à la manière dont vous effectuez de telles connexions en dehors d’Insights, par exemple dans une application de gestion de base de données.

Si une erreur survient après avoir cliqué sur l’ajout d’une nouvelle connexion, le message d’erreur devrait vous fournir un indice pour la résoudre. Vous pouvez trouver des détails sur le problème dans l’article Résoudre les problèmes de connexion à une base de données ou dans le journal DEBUG du serveur d’hébergement.

Journal de débogage d’ArcGIS Server avec les numéros de requêtes (à partir de la version 10.7) généré par Insights

Parfois, il suffit d’un examen minutieux des propriétés figurant dans les champs pour résoudre un problème de connexion (p. ex., supprimer le port optionnel pour une connexion à une base de données SQL Server; utiliser l’adresse IP au lieu du nom du serveur; changer les lettres majuscules en lettres minuscules ou l’inverse). Vous pourriez aussi devoir reprendre les étapes mentionnées dans ce guide.

Merci d’avoir lu le guide. Si vous souhaitez voir une démonstration des étapes, jetez un œil à cette vidéo. Nous espérons que tout se passera bien la prochaine fois que vous tenterez une connexion à une base de données dans Insights.

Bonne analyse des données!

Ce billet a été écrit en anglais par Jing Yan et peut être consulté ici.