Schnellstart: Abfragen einer Datenbank in Azure SQL-Datenbank oder Azure SQL Managed Instance mithilfe von Node.js

GILT FÜR: Azure SQL-Datenbank Azure SQL Managed Instance

In dieser Schnellstartanleitung verwenden Sie Node.js, um eine Verbindung mit einer Datenbank herzustellen und Daten abzufragen.

Voraussetzungen

Für die Durchführung dieses Schnellstarts benötigen Sie Folgendes:


Wichtig

Die Skripts in diesem Artikel wurden für die Datenbank Adventure Works geschrieben.

Hinweis

Optional kann Azure SQL Managed Instance verwendet werden.

Verwenden Sie zum Erstellen und Konfigurieren das Azure-Portal, PowerShell oder die Befehlszeilenschnittstelle, und richten Sie anschließend die Konnektivität (lokal oder VM) ein.

Informationen zum Laden von Daten finden Sie unter Schnellstart: Importieren einer BACPAC-Datei in eine Datenbank in Azure SQL-Datenbank (mit der Datei für Adventure Works) bzw. unter Schnellstart: Wiederherstellen einer Datenbank in einer verwalteten Instanz.

Ermitteln von Serververbindungsinformationen

Ermitteln Sie die Verbindungsinformationen, die Sie zum Herstellen einer Verbindung mit der Datenbank in Azure SQL-Datenbank benötigen. In den weiteren Verfahren benötigen Sie den vollqualifizierten Server- oder Hostnamen, den Datenbanknamen und die Anmeldeinformationen.

  1. Melden Sie sich beim Azure-Portal an.

  2. Wechseln Sie zur Seite SQL-Datenbanken oder Verwaltete SQL-Instanzen.

  3. Auf der Seite Übersicht finden Sie den vollqualifizierten Servernamen für eine Datenbank in Azure SQL-Datenbank neben Servername oder den vollqualifizierten Servernamen (oder die IP-Adresse) für Azure SQL Managed Instance bzw. für SQL Server auf einem virtuellen Azure-Computer neben Host. Um den Namen des Servers oder Hosts zu kopieren, zeigen Sie darauf, und wählen Sie das Symbol Kopieren aus.

Hinweis

Verbindungsinformationen für SQL Server auf einem virtuellen Azure-Computer finden Sie unter Herstellen einer Verbindung mit SQL Server.

Erstellen des Projekts

Öffnen Sie eine Eingabeaufforderung, und erstellen Sie einen Ordner namens sqltest. Öffnen Sie den erstellten Ordner, und führen Sie den folgenden Befehl aus:

npm init -y
npm install tedious

Hinzufügen von Code zum Abfragen der Datenbank

  1. Erstellen Sie in Ihrem bevorzugten Text-Editor eine neue Datei namens sqltest.js.

  2. Ersetzen Sie ihren Inhalt durch den folgenden Code. Fügen Sie anschließend die entsprechenden Werte für Server, Datenbank, Benutzer und Kennwort hinzu.

    const { Connection, Request } = require("tedious");
    
    // Create connection to database
    const config = {
      authentication: {
        options: {
          userName: "username", // update me
          password: "password" // update me
        },
        type: "default"
      },
      server: "your_server.database.windows.net", // update me
      options: {
        database: "your_database", //update me
        encrypt: true
      }
    };
    
    /* 
        //Use Azure VM Managed Identity to connect to the SQL database
        const connection = new Connection({
        server: process.env["db_server"],
        authentication: {
            type: 'azure-active-directory-msi-vm',
        },
        options: {
            database: process.env["db_database"],
            encrypt: true,
            port: 1433
        }
    });
        //Use Azure App Service Managed Identity to connect to the SQL database
        const connection = new Connection({
        server: process.env["db_server"],
        authentication: {
            type: 'azure-active-directory-msi-app-service',
        },
        options: {
            database: process.env["db_database"],
            encrypt: true,
            port: 1433
        }
    });
    
    */
    
    const connection = new Connection(config);
    
    // Attempt to connect and execute queries if connection goes through
    connection.on("connect", err => {
      if (err) {
        console.error(err.message);
      } else {
        queryDatabase();
      }
    });
    
    connection.connect();
    
    function queryDatabase() {
      console.log("Reading rows from the Table...");
    
      // Read all rows from table
      const request = new Request(
        `SELECT TOP 20 pc.Name as CategoryName,
                       p.name as ProductName
         FROM [SalesLT].[ProductCategory] pc
         JOIN [SalesLT].[Product] p ON pc.productcategoryid = p.productcategoryid`,
        (err, rowCount) => {
          if (err) {
            console.error(err.message);
          } else {
            console.log(`${rowCount} row(s) returned`);
          }
        }
      );
    
      request.on("row", columns => {
        columns.forEach(column => {
          console.log("%s\t%s", column.metadata.colName, column.value);
        });
      });
    
      connection.execSql(request);
    }
    

Hinweis

Weitere Informationen zur Verwendung der verwalteten Identität für die Authentifizierung finden Sie im Tutorial zum Zugreifen auf Daten über die verwaltete Identität.

Hinweis

Im Codebeispiel wird die Beispieldatenbank AdventureWorksLT in Azure SQL-Datenbank verwendet.

Ausführen des Codes

  1. Führen Sie das Programm an der Eingabeaufforderung aus.

    node sqltest.js
    
  2. Vergewissern Sie sich, dass die ersten 20 Zeilen zurückgegeben werden, und schließen Sie das Anwendungsfenster.

Nächste Schritte