Exercice - Se connecter à votre base de données et ajouter des exemples de données

Effectué

Avant de connecter la base de données à votre application, vous souhaitez vérifier que vous pouvez vous y connecter, ajouter une table de base et utiliser des exemples de données.

Nous gérons l’infrastructure, les mises à jour logicielles et les correctifs pour votre base de données SQL Azure. Vous pouvez traiter votre base de données Azure SQL comme vous le feriez pour n’importe quelle autre installation de SQL Server. Par exemple, vous pouvez utiliser Visual Studio, SQL Server Management Studio, Azure Data Studio ou d’autres outils pour gérer votre base de données SQL Azure.

La façon dont vous accédez à votre base de données et dont vous la connectez à votre application dépend de vous. Pour vous permettre d’expérimenter l’utilisation de votre base de données, nous allons nous y connecter directement à partir du portail, créer une table et exécuter quelques opérations CRUD de base. Voici ce que vous apprenez :

  • Ce qu’est Cloud Shell et comment y accéder à partir du portail.
  • Comment accéder aux informations sur votre base de données à partir de l’interface CLI Azure, notamment les chaînes de connexion.
  • Comment se connecter à votre base de données avec sqlcmd.
  • Comment initialiser votre base de données avec une table de base et des exemples de données.

Présentation d’Azure Cloud Shell

Azure Cloud Shell est un shell dans un navigateur qui permet de gérer et de développer des ressources Azure. Vous pouvez considérer que Cloud Shell est une console interactive qui s’exécute dans le cloud.

En réalité, Cloud Shell s’exécute sur Linux. Selon que vous préférez un environnement Linux ou Windows, vous pouvez toutefois choisir entre deux expériences : Bash et PowerShell.

Cloud Shell est accessible de n’importe où. Outre le portail, vous pouvez aussi accéder à Cloud Shell à partir de shell.azure.com, d’Azure mobile app ou de Visual Studio Code.

Cloud Shell comprend des outils et des éditeurs de texte très prisés. Voici un bref aperçu des utilitaires az, jq et sqlcmd, les trois outils que vous utilisez dans cet exercice.

  • az est également appelé Azure CLI. Il s’agit de l’interface de ligne de commande permettant de travailler avec des ressources Azure. Vous utilisez cette interface pour obtenir des informations sur votre base de données, notamment la chaîne de connexion.
  • jq est un analyseur JSON en ligne de commande. Vous dirigez la sortie des commandes az vers cet outil pour extraire des champs importants à partir de la sortie JSON.
  • sqlcmd vous permet d’exécuter des instructions sur SQL Server. Vous utilisez sqlcmd pour créer une session interactive avec votre base de données SQL Azure.

Obtenir des informations sur votre base de données SQL Azure

Avant de vous connecter à votre base de données, il est judicieux de vérifier qu’elle existe et qu’elle est en ligne.

Ici, vous utilisez l’utilitaire az pour dresser la liste de vos bases de données et afficher des informations sur la base de données Logistics, notamment sa taille maximale et son état.

  1. Les commandes az que vous exécutez nécessitent le nom de votre groupe de ressources et le nom de votre serveur logique Azure SQL. Pour enregistrer des séquences de touches, exécutez cette commande azure configure pour les définir comme valeurs par défaut.

    Remplacez [server-name] par le nom du serveur logique Azure SQL que vous avez créé et [resource-group] par le groupe de ressources que vous avez utilisé pour votre serveur.

    az configure --defaults group=[resource-group] sql-server=[server-name]
    

    Notes

    Selon le volet sur lequel vous vous trouvez dans le portail, le nom de votre serveur SQL peut s’afficher sous la forme d’un FQDN (par exemple, servername.database.windows.net). Toutefois, pour cette commande, vous n’avez besoin que du nom logique sans le suffixe .database.windows.net.

  2. Exécutez la commande az sql db list suivante pour lister toutes les bases de données de votre serveur logique Azure SQL :

    az sql db list
    

    Vous obtenez un grand bloc de code JSON en sortie.

  3. Dans la mesure où nous souhaitons seulement obtenir les noms de bases de données, exécutez la commande une deuxième fois. Mais cette fois-ci, dirigez la sortie vers jq pour afficher seulement les champs de nom.

    az sql db list | jq '[.[] | {name: .name}]'
    

    Vous devriez obtenir cette sortie :

    [
      {
        "name": "Logistics"
      },
      {
        "name": "master"
      }
    ]
    

    Logistics est votre base de données. Comme SQL Server, la base de données système master inclut les métadonnées du serveur, comme les connexions et les paramètres de configuration système.

  4. Exécutez la commande az sql db show suivante pour obtenir plus d’informations sur la base de données Logistics :

    az sql db show --name Logistics
    

    Comme précédemment, vous voyez un grand bloc de code JSON en sortie.

  5. Exécutez la commande une deuxième fois. Cette fois-ci, dirigez la sortie vers jq pour limiter la sortie sur le nom uniquement, la taille maximale et l’état de la base de données Logistics.

    az sql db show --name Logistics | jq '{name: .name, maxSizeBytes: .maxSizeBytes, status: .status}'
    

    La base de données apparaît en ligne et indique la quantité maximale de données qu’elle peut stocker.

    {
      "name": "Logistics",
      "maxSizeBytes": 2147483648,
      "status": "Online"
    }
    

Se connecter à votre base de données

Maintenant que vous en savez un peu plus sur votre base de données, nous allons nous y connecter avec sqlcmd, créer une table qui contient des informations sur les chauffeurs effectuant des transports et effectuer quelques opérations CRUD de base.

N’oubliez pas que CRUD est l’acronyme de Create (Créer), Read (Lire), Update (Mettre à jour) et Delete (Supprimer). Ces termes font référence aux opérations que vous effectuez sur les données des tables : ce sont les quatre opérations de base dont vous avez besoin pour votre application. C’est le bon moment pour vérifier que vous pouvez effectuer chacune d’elles.

  1. Exécutez la commande az sql db show-connection-string suivante pour obtenir la chaîne de connexion à la base de données Logistics dans un format utilisable par sqlcmd :

    az sql db show-connection-string --client sqlcmd --name Logistics
    

    Votre sortie se présente comme dans l’exemple suivant. Copiez cette sortie pour l’utiliser à l’étape suivante.

    "sqlcmd -S tcp:contoso-1.database.windows.net,1433 -d Logistics -U <username> -P <password> -N -l 30"
    
  2. Exécutez l’instruction sqlcmd à partir de la sortie de l’étape précédente pour créer une session interactive. Supprimez les guillemets et remplacez <username> et <password> par le nom d’utilisateur et le mot de passe que vous avez spécifiés au moment de la création de votre base de données. Voici un exemple :

    sqlcmd -S tcp:contoso-1.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
    

    Conseil

    Placez votre mot de passe entre guillemets pour que « & » et les autres caractères spéciaux ne soient pas interprétés comme des instructions de traitement.

    Important

    Vous pouvez voir un message d’erreur semblable à l’exemple suivant :

    Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server:
    Cannot open server 'contoso' requested by the login.
    Client with IP address 'nnn.nnn.nnn.nnn' is not allowed to access the server.
    To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule
    on the master database to create a firewall rule for this IP address or address range.
    It may take up to five minutes for this change to take effect.
    

    Si cette erreur se produit, vous devez ajouter une autre règle de pare-feu pour votre client. Pour ce faire, suivez les étapes suivantes :

    • Connectez-vous au portail Azure.

    • Dans la page d’accueil Azure, sous Services Azure, sélectionnez Toutes les ressources. Le volet Toutes les ressources s’affiche.

    • Recherchez et sélectionnez votre base de données. Le volet Logistique apparaît pour votre base de données SQL.

    • Dans la barre de menus supérieure, sélectionnez Définir le pare-feu du serveur. Le volet Mise en réseau s’affiche.

    • Dans la section Règles de pare-feu, sélectionnez Ajouter une règle de pare-feu. Le volet Ajouter une règle de pare-feu s’affiche.

    • Spécifiez un Nom de règle unique, puis entrez votre adresse IP indiquée au sein du message d’erreur dans les champs Adresse IP de début et Adresse IP de fin. Sélectionnez OK.

    • Sélectionnez Enregistrer.

    • Réexécutez l’instruction sqlcmd pour lancer votre session sqlcmd interactive. La commande doit ressembler à l’exemple suivant :

    sqlcmd -S tcp:contoso-1.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
    

    Maintenant que vous avez lancé votre session sqlcmd, les commandes restantes utilisent le langage Transact-SQL ou T-SQL.

    Conseil

    Quand vous exécutez des commandes T-SQL dans ce module, la commande GO sur la deuxième ligne peut ne pas être copiée via l’invite sqlcmd. Après avoir entré la première ligne de la commande, il est possible que vous deviez taper la commande GO. La commande T-SQL ne fonctionnant pas sans la commande GO, veillez à l’exécuter.

  3. À partir de votre session sqlcmd, exécutez les instructions T-SQL suivantes pour créer une table nommée Drivers :

    CREATE TABLE Drivers (DriverID int, LastName varchar(255), FirstName varchar(255), OriginCity varchar(255));
    GO
    

    La table contient quatre colonnes : un identificateur unique, le nom et le prénom du chauffeur, et sa ville d’origine.

  4. Exécutez les instructions T-SQL suivantes pour vérifier que la table Drivers existe :

    SELECT name FROM sys.tables;
    GO
    

    Vous devriez obtenir cette sortie :

    name
    --------------------------------------------------------------------------------------------------------------------------------
    Drivers
    
    (1 rows affected)
    
  5. Pour tester l’opération de création, exécutez les instructions T-SQL suivantes pour ajouter un exemple de ligne à la table :

    INSERT INTO Drivers (DriverID, LastName, FirstName, OriginCity) VALUES (123, 'Zirne', 'Laura', 'Springfield');
    GO
    

    Cette sortie indique que l’opération a réussi :

    (1 rows affected)
    
  6. Pour tester l’opération de lecture, exécutez les instructions T-SQL suivantes pour lister les colonnes DriverID et OriginCity pour toutes les lignes de la table :

    SELECT DriverID, OriginCity FROM Drivers;
    GO
    

    Vous obtenez un résultat, avec les DriverID et OriginCity pour la ligne que vous avez créée à l’étape précédente.

    DriverID    OriginCity
    ----------- --------------------------
            123 Springfield
    
    (1 rows affected)
    
  7. Pour tester l’opération de mise à jour, exécutez les instructions T-SQL suivantes pour remplacer la ville d’origine « Springfield » par « Boston » pour le chauffeur pour lequel DriverID est égal à 123 :

    UPDATE Drivers SET OriginCity='Boston' WHERE DriverID=123;
    GO
    
  8. Exécutez les instructions T-SQL suivantes pour lister à nouveau les colonnes DriverID et OriginCity :

    SELECT DriverID, OriginCity FROM Drivers;
    GO
    

    Vous devez maintenant obtenir la sortie suivante. Comme vous pouvez le constater, OriginCity montre que la valeur a été remplacée par Boston.

    DriverID    OriginCity
    ----------- --------------------------
            123 Boston
    
    (1 rows affected)
    
  9. Pour finir, testez l’opération de suppression en exécutant les instructions T-SQL suivantes pour supprimer l’enregistrement :

    DELETE FROM Drivers WHERE DriverID=123;
    GO
    
    (1 rows affected)
    
  10. Exécutez les instructions T-SQL suivantes pour vérifier que la table Drivers est vide :

    SELECT COUNT(*) FROM Drivers;
    GO
    

    Vous voyez que la table ne contient aucune ligne.

    -----------
              0
    
    (1 rows affected)
    

Comme vous avez maintenant une idée générale du fonctionnement d’Azure SQL Database à partir de Cloud Shell, vous pouvez obtenir la chaîne de connexion pour votre outil de gestion SQL préféré, qu’il s’agisse de SQL Server Management Studio, de Visual Studio ou autre.

Cloud Shell permet d’accéder à et d’utiliser facilement vos ressources Azure. Cloud Shell étant basé sur un navigateur, vous pouvez y accéder à partir de Windows, de macOS ou de Linux, c’est-à-dire en fait à partir de n’importe quel système avec un navigateur web.

Vous avez acquis une certaine expérience pratique en exécutant des commandes Azure CLI pour obtenir des informations sur votre base de données SQL Azure. De plus, vous avez utilisé vos qualifications T-SQL.

Dans l’unité suivante, nous concluons ce module et indiquons comment détruire votre base de données.