Partager via


Base de données IBM Db2

Résumé

Élément Description
État de mise en production Disponibilité générale
Produits Excel
Power BI (modèles sémantiques)
Power BI (Flux de données)
Fabric (Dataflow Gen2)
Power Apps (flux de données)
Dynamics 365 Customer Insights
Types d’authentification pris en charge Élémentaire
Base de données
Windows
Documentation de référence sur les fonctions Base de données DB2

Note

Certaines fonctionnalités peuvent être présentes dans un produit, mais pas d’autres en raison de planifications de déploiement et de fonctionnalités spécifiques à l’hôte.

Conditions préalables

Par défaut, le connecteur de base de données IBM Db2 utilise le pilote Microsoft pour se connecter à vos données. Si vous choisissez d’utiliser le pilote IBM dans les options avancées de Power Query Desktop, vous devez d’abord installer le pilote IBM Db2 pour .NET sur l’ordinateur utilisé pour se connecter aux données. Le nom de ce pilote change de temps en temps. Veillez donc à installer le pilote IBM Db2 qui fonctionne avec .NET. Pour obtenir des instructions sur le téléchargement, l’installation et la configuration du pilote IBM Db2 pour .NET, accédez à Télécharger les clients et pilotes de la version initiale 11.5. Plus d’informations : les limitations du pilote , Assurez-vous que le pilote IBM Db2 soit installé

Fonctionnalités prises en charge

  • Importer
  • DirectQuery (modèles sémantiques Power BI)
  • Options avancées
    • Pilote (IBM ou Microsoft)
    • Délai d’expiration de la commande en minutes
    • Collection de packages
    • Instruction SQL
    • Inclure des colonnes de relation
    • Naviguer à l’aide de la hiérarchie complète

Se connecter à une base de données IBM Db2 à partir de Power Query Desktop

Pour établir la connexion, procédez comme suit :

  1. Sélectionnez l’option base de données IBM Db2 dans Obtenir des données.

  2. Spécifiez le serveur IBM Db2 auquel se connecter dans Server. Si un port est requis, spécifiez-le à l’aide du format ServerName :Port, où port est le numéro de port. Entrez également la base de données IBM Db2 que vous souhaitez accéder dans Database. Dans cet exemple, le nom et le port du serveur sont TestIBMDb2server.contoso.com:4000 et la base de données IBM Db2 accessible est NORTHWD2.

    Capture d’écran de la boîte de dialogue de connexion à la base de données IBM Db2 dans laquelle vous entrez vos informations de connexion.

  3. Si vous vous connectez à partir de Power BI Desktop, sélectionnez le mode de connectivité des données Importer ou DirectQuery. Le reste de ces exemples d’étapes utilisent le mode de connectivité des données d’importation. Pour en savoir plus sur DirectQuery, accédez à Utiliser DirectQuery dans Power BI Desktop.

    Note

    Par défaut, la boîte de dialogue base de données IBM Db2 utilise le pilote Microsoft lors de la connexion. Si vous souhaitez utiliser le pilote IBM, ouvrez options avancées et sélectionnez IBM. Pour plus d’informations, accédez à Se connecter à l’aide d’options avancées.

    Si vous sélectionnez DirectQuery comme mode de connectivité des données, l’instruction SQL dans les options avancées est désactivée. DirectQuery ne prend actuellement pas en charge la transmission push de requête au-dessus d’une requête de base de données native pour le connecteur IBM Db2.

  4. Sélectionnez OK.

  5. Si vous vous connectez à cette base de données IBM Db2 pour la première fois, sélectionnez le type d’authentification que vous souhaitez utiliser, entrez vos informations d’identification, puis sélectionnez Se connecter. Pour plus d’informations sur l’authentification, accédez à Authentification avec une source de données.

    Capture d’écran de la boîte de dialogue d’authentification dans laquelle vous entrez vos informations d’identification de base de données IBM Db2.

    Par défaut, Power Query tente de se connecter à la base de données IBM Db2 à l’aide d’une connexion chiffrée. Si Power Query ne peut pas se connecter à l’aide d’une connexion chiffrée, une boîte de dialogue « Impossible de se connecter » s’affiche. Pour vous connecter à l’aide d’une connexion non chiffrée, sélectionnez OK.

    Capture d’écran du message de support de chiffrement dans lequel vous pouvez décider d’utiliser une connexion non chiffrée.

  6. Dans navigateur, sélectionnez les données dont vous avez besoin, puis sélectionnez Charger pour charger les données ou transformer des données pour transformer les données.

    Capture d’écran du navigateur dans lequel vous sélectionnez les données dont vous avez besoin à partir de la base de données.

Se connecter à une base de données IBM Db2 à partir de Power Query Online

Pour établir la connexion, procédez comme suit :

  1. Sélectionnez l'option base de données IBM Db2 dans la page Power Query - Connexion à la source de données.

  2. Spécifiez le serveur IBM Db2 auquel se connecter dans Server. Si un port est requis, spécifiez-le à l’aide du format ServerName :Port, où port est le numéro de port. Entrez également la base de données IBM Db2 que vous souhaitez accéder dans Database. Dans cet exemple, le nom et le port du serveur sont TestIBMDb2server.contoso.com:4000 et la base de données IBM Db2 accessible est NORTHWD2

  3. Sélectionnez le nom de votre passerelle de données locale.

    Note

    Vous devez sélectionner une passerelle de données locale pour ce connecteur, que la base de données IBM Db2 se trouve sur votre réseau local ou en ligne.

  4. Si vous vous connectez à cette base de données IBM Db2 pour la première fois, sélectionnez le type d’informations d’identification de la connexion dans le type d’authentification. Choisissez Basic si vous envisagez d’utiliser un compte créé dans la base de données IBM Db2 au lieu de l’authentification Windows.

  5. Entrez vos informations d’identification.

  6. Sélectionnez Utiliser une connexion chiffrée si vous souhaitez utiliser une connexion chiffrée, ou désactivez l’option si vous souhaitez utiliser une connexion non chiffrée.

    Capture d’écran des paramètres de connexion en ligne de la base de données IBM Db2 avec les paramètres requis entrés.

  7. Sélectionnez Suivant pour continuer.

  8. Dans Navigateur, sélectionnez les données dont vous avez besoin, puis transformez les données pour transformer les données dans l’éditeur Power Query.

    Capture d’écran du navigateur en ligne dans lequel vous sélectionnez les données que vous souhaitez transformer.

Se connecter à l’aide d’options avancées

Power Query fournit un ensemble d’options avancées que vous pouvez ajouter à votre requête si nécessaire.

Capture d’écran des options avancées incluses dans la boîte de dialogue de connexion à la base de données IBM Db2.

Le tableau suivant répertorie toutes les options avancées que vous pouvez définir dans Power Query.

Option avancée Description
Chauffeur Détermine le pilote utilisé pour se connecter à votre base de données IBM Db2. Les choix sont IBM et Windows (par défaut). Si vous sélectionnez le pilote IBM, vous devez d’abord vous assurer que le pilote IBM Db2 pour .NET est installé sur votre ordinateur. Cette option est disponible uniquement dans Power Query Desktop. Plus d’informations : Vérifier que le pilote IBM Db2 est installé
Délai d’expiration de la commande en minutes Si votre connexion dure plus de 10 minutes (délai d’expiration par défaut), vous pouvez entrer une autre valeur en minutes pour que la connexion reste ouverte plus longtemps.
Collection de packages Spécifie où rechercher des packages. Les packages sont des structures de contrôle utilisées par Db2 lors du traitement d’une instruction SQL et sont créées automatiquement si nécessaire. Par défaut, cette option utilise la valeur NULLID. Disponible uniquement lors de l’utilisation du pilote Microsoft. Plus d’informations : packages DB2 : Concepts, exemples et problèmes courants
Instruction SQL Pour plus d’informations, accédez à Importer des données à partir d’une base de données à l’aide de la requête de base de données native.
Inclure des colonnes de relation Si cette option est cochée, inclut des colonnes qui peuvent avoir des relations avec d’autres tables. Si cette zone est désactivée, vous ne voyez pas ces colonnes.
Naviguer à l’aide de la hiérarchie complète Si cette option est cochée, le navigateur affiche la hiérarchie complète des tables dans la base de données à laquelle vous vous connectez. S’il est effacé, le navigateur affiche uniquement les tables dont les colonnes et les lignes contiennent des données.

Une fois que vous avez sélectionné les options avancées dont vous avez besoin, sélectionnez OK dans Power Query Desktop ou Suivant dans Power Query Online pour vous connecter à votre base de données IBM Db2.

Problèmes et limitations

Limitations du pilote

Le pilote Microsoft est le même que celui utilisé dans Microsoft Host Integration Server, appelé « fournisseur ADO.NET pour DB2 ». Le pilote IBM est le pilote IBM Db/2 qui fonctionne avec .NET. Le nom de ce pilote change de temps en temps. Assurez-vous qu’il s’agit de celui qui fonctionne avec .NET, qui est différent des pilotes IBM Db2 qui fonctionnent avec OLE/DB, ODBC ou JDBC.

Vous pouvez choisir d’utiliser le pilote Microsoft (par défaut) ou le pilote IBM si vous utilisez Power Query Desktop. Actuellement, Power Query Online utilise uniquement le pilote Microsoft. Chaque pilote a ses limitations.

  • Pilote Microsoft
    • Prend en charge uniquement TLS (Transport Layer Security) à partir de la version de décembre 2024 de Power BI Desktop ou ultérieure.
  • Pilote IBM
    • Le connecteur de base de données IBM Db2, lors de l’utilisation du pilote IBM Db2 pour .NET, ne fonctionne pas avec les systèmes Mainframe ou IBM i
    • Ne prend pas en charge DirectQuery

Microsoft prend en charge le pilote Microsoft, mais pas le pilote IBM. Toutefois, si votre service informatique l’a déjà configuré et configuré sur vos machines, votre service informatique doit savoir comment résoudre les problèmes du pilote IBM.

Requêtes natives non prises en charge dans DirectQuery

Lorsque vous sélectionnez DirectQuery comme mode de connectivité des données dans Power Query Desktop, la zone de texte de l’instruction SQL dans les options avancées est désactivée. La zone est désactivée, car le connecteur IBM Db2 Power Query ne prend actuellement pas en charge la transmission push de requête au-dessus d’une requête de base de données native.

Dépannage

Vérifiez que le pilote IBM Db2 est installé

Si vous choisissez d’utiliser le pilote IBM Db2 pour Power Query Desktop, vous devez d’abord télécharger, installer et configurer le pilote sur votre ordinateur. Pour vous assurer que le pilote IBM Db2 est installé :

  1. Ouvrez Windows PowerShell sur votre ordinateur.

  2. Entrez la commande suivante :

    [System.Data.Common.DbProviderFactories]::GetFactoryClasses() | ogv

  3. Dans la boîte de dialogue qui s’ouvre, vous devez voir le nom suivant dans la colonne InvariantName :

    IBM.Data.DB2

Si ce nom se trouve dans la colonne InvariantName , le pilote IBM Db2 est installé et configuré correctement.

Codes d’erreur sqlCODE -805 et SQLCODE -551

Lorsque vous tentez de vous connecter à une base de données IBM Db2, vous pouvez parfois rencontrer l’erreur courante SQLCODE -805, ce qui indique que le package n’est pas trouvé dans la NULLID ou l’autre collection (spécifiée dans la configuration de connexion du package Power Query). Vous pouvez également rencontrer l’erreur courante SQLCODE -551, ce qui indique que vous ne pouvez pas créer de packages, car vous n’avez pas d’autorité de liaison de package.

En règle générale, SQLCODE -805 est suivi de SQLCODE -551, mais seule la deuxième exception est affichée. En réalité, le problème est le même. Vous n’êtes pas autorisé à lier le package à NULLID ou à la collection spécifiée.

En règle générale, la plupart des administrateurs IBM Db2 ne fournissent pas d’autorité de package de liaison aux utilisateurs finaux, en particulier dans un environnement IBM z/OS (mainframe) ou IBM i (AS/400). Db2 sur Linux, Unix ou Windows est différent dans le cas où les comptes d’utilisateur ont des privilèges de liaison par défaut, ce qui crée le package MSCS001 (Cursor Stability) dans la propre collection de l’utilisateur (nom = nom de connexion utilisateur).

Si vous n’avez pas de privilèges de liaison de paquet, vous devez demander à votre administrateur Db2 l’autorité de liaison de paquet. Avec cette autorité de liaison pour le paquet, connectez-vous à la base de données et extrayez les données, ce qui génère automatiquement le paquet. Ensuite, l’administrateur peut révoquer l’autorité de liaison de paquets. En outre, par la suite, l’administrateur peut « copier-lier » le paquet à d’autres collections pour accroître la simultanéité, mieux respecter vos normes internes quant à l'emplacement où les paquets sont liés, et ainsi de suite.

Lorsque vous vous connectez à IBM Db2 pour z/OS, l’administrateur Db2 peut effectuer les étapes suivantes.

  1. Accordez l’autorité pour lier un nouveau package à l’utilisateur avec l’une des commandes suivantes :

    • ACCORDER BINDADD SUR LE SYSTÈME À <authorization_name>
    • GRANT PACKADM ON <collection_name TO ><>
  2. À l’aide de Power Query, connectez-vous à la base de données IBM Db2 et récupérez une liste de schémas, de tables et de vues. Le connecteur de base de données IBM Db2 Power Query crée automatiquement le package NULLID.MSCS001, puis accorde l'exécution sur le package au public.

  3. Révoquez l’autorité pour lier un nouveau package à l’utilisateur avec l’une des commandes suivantes :

    • RÉVOQUER BINDADD FROM <authorization_name>
    • RÉVOQUER PACKADM SUR <> DE <authorization_name>

Lorsque vous vous connectez à IBM Db2 pour Linux, Unix ou Windows, l’administrateur Db2 peut effectuer les étapes suivantes.

  1. ACCORDER BINDADD SUR LA BASE DE DONNÉES À L'UTILISATEUR <authorization_name>.

  2. À l’aide de Power Query, connectez-vous à la base de données IBM Db2 et récupérez une liste de schémas, de tables et de vues. Le connecteur Power Query IBM Db2 crée automatiquement le package NULLID.MSCS001, puis accorde l'exécution sur le package à public.

  3. RÉVOQUER BINDADD SUR BASE DE DONNÉES DE L'UTILISATEUR <authorization_name>.

  4. ACCORDER L'EXÉCUTION SUR LE PAQUET <collection.package> À L'UTILISATEUR <authorization_name>.

Lorsque vous vous connectez à IBM Db2 pour i, l’administrateur Db2 peut effectuer les étapes suivantes.

  1. WRKOBJ QSYS/CRTSQLPKG. Tapez « 2 » pour modifier l’autorité de l’objet.

  2. Modifiez l’autorité de *EXCLUDE vers PUBLIC ou <authorization_name>.

  3. Ensuite, remplacez l’autorité par *EXCLUDE.

Code d’erreur sqlCODE -360

Lorsque vous tentez de vous connecter à la base de données IBM Db2, vous pouvez rencontrer l’erreur suivante :

Microsoft Db2 Client: The host resource could not be found. Check that the Initial Catalog value matches the host resource name. SQLSTATE=HY000 SQLCODE=-360

Ce message d’erreur indique que vous n’avez pas placé la valeur appropriée pour le nom de la base de données.

Code d’erreur sqlCODE -1336

The specified host could not be found.

Vérifiez le nom et vérifiez que l’hôte est accessible. Par exemple, utilisez ping dans une invite de commandes pour tenter d’atteindre le serveur et vérifier que l’adresse IP est correcte ou utilisez telnet pour communiquer avec le serveur.

Code d’erreur sqlCODE -1037

Host is reachable, but is not responding on the specified port.

Le port est spécifié à la fin du nom du serveur, séparé par un signe deux-points. S’il est omis, la valeur par défaut de 5 0000 est utilisée.

Pour rechercher le port Db2 est utilisé pour Linux, Unix et Windows, exécutez cette commande :

db2 get dbm cfg | findstr SVCENAME

Recherchez dans la sortie une entrée pour SVCENAME (et SSL_SVCENAME pour les connexions chiffrées TLS). Si cette valeur est un nombre, il s’agit du port. Sinon, comparez la valeur avec la table « services » du système. Vous pouvez généralement trouver cette table sur /etc/services, ou à c :\windows\system32\drivers\etc\services pour Windows.

La capture d’écran suivante montre la sortie de cette commande dans Linux/Unix.

Capture d’écran montrant la sortie de la commande db2 dans Linux et Unix.

La capture d’écran suivante montre la sortie de cette commande dans Windows.

Capture d’écran montrant la sortie de la commande db2 dans Windows.

Déterminer le nom de la base de données

Pour déterminer le nom de la base de données à utiliser :

  1. Sur IBM i, exécutez DSPRDBDIRE.

    Capture d’écran montrant la sortie des entrées du répertoire de base de données relationnelle d’affichage.

  2. L’une des entrées a une localisation distante de *LOCAL. Cette entrée est celle à utiliser.

Déterminer le numéro de port

Le pilote Microsoft se connecte à la base de données à l’aide du protocole DRDA (Distributed Relational Database Architecture). Le port par défaut pour DRDA est le port 446. Essayez d’abord cette valeur.

Pour rechercher le port sur lequel le service DRDA s’exécute :

  1. Exécutez la commande IBM i WRKSRVTBLE.

  2. Faites défiler vers le bas jusqu’à ce que vous trouviez les entrées pour DRDA.

    Capture d’écran montrant les entrées de table de service avec les entrées DRDA affichées.

  3. Pour confirmer que le service DRDA est en fonctionnement et à l'écoute de ce port, exécutez NETSTAT.

    Capture d’écran des options NETSTAT que vous pouvez sélectionner.

  4. Choisissez l’option 3 (pour IPv4) ou l’option 6 (pour IPv6).

  5. Appuyez sur F14 pour répertorier les numéros de port au lieu des noms, puis faites défiler jusqu’à ce que vous trouviez le port en question. Il doit comporter une entrée avec un état « Écoute ».

    Capture d’écran de l’état de connexion IPv4 montrant les états d’écoute.