Herstellen einer Verbindung mit und Abfragen von Azure SQL Edge

Wichtig

Azure SQL Edge unterstützt die ARM64-Plattform nicht mehr.

Nach der Bereitstellung eines Containers können Sie in Azure SQL Edge von einem der folgenden Speicherorte aus eine Verbindung mit dem Datenbank-Engine herstellen:

  • Innerhalb des Containers.
  • Von einem anderen Docker-Container, der auf demselben Host ausgeführt wird
  • Auf dem Hostcomputer
  • Von einem beliebigen anderen Clientcomputer im Netzwerk

Tools zum Herstellen einer Verbindung mit Azure SQL Edge

Sie können eine Verbindung mit einer Azure SQL Edge-Instanz von einem dieser gängigen Tools aus herstellen:

  • sqlcmd: sqlcmd-Clienttools sind bereits im Containerimage von Azure SQL Edge enthalten. Wenn Sie mithilfe einer interaktiven Bash-Shell mit einem ausgeführten Container verbunden sind, können Sie die Tools lokal ausführen. SQL-Clienttools sind auf der ARM64-Plattform nicht verfügbar.
  • SQL Server Management Studio
  • Azure Data Studio
  • Visual Studio Code

Um eine Verbindung mit einem Azure SQL Edge-Datenbank-Engine von einem Netzwerkcomputer herzustellen, benötigen Sie Folgendes:

  • IP-Adresse oder Netzwerkname des Hostcomputers: Dies ist der Hostcomputer, auf dem der Azure SQL Edge-Container ausgeführt wird.

  • Zuordnung des Azure SQL Edge-Containerhostports: Dies ist die Zuordnung des Docker-Containerports zu einem Port auf dem Host. Innerhalb des Containers wird Azure SQL Edge immer Port 1433 zugeordnet. Sie können dies auf Wunsch ändern. Um die Portnummer zu ändern, aktualisieren Sie die Optionen für Containererstellung für das Azure SQL Edge-Modul in Azure IoT Edge. Im folgenden Beispiel wird Port 1433 des Containers dem Port 1600 des Hosts zugeordnet.

    {
        "PortBindings": {
          "1433/tcp": [
            {
              "HostPort": "1600"
            }
          ]
        }
    }
    
  • SA-Kennwort für die SQL Edge-Instanz: Dies ist der Wert, der bei der Azure SQL Edge-Bereitstellung für die SA_PASSWORDUmgebungsvariable angegeben wurde.

Verbinden in den Datenbank-Engine innerhalb des Containers

Die SQL Server-Befehlszeilentools sind im Azure SQL Edge-Containerimage enthalten. Wenn Sie den Container über eine interaktive Befehlszeile anfügen, können Sie die Tools lokal ausführen. SQL-Clienttools sind auf der ARM64-Plattform nicht verfügbar.

  1. Verwenden Sie den Befehl docker exec -it, um in Ihrem laufenden Container eine interaktive Bash-Shell zu starten. Im folgenden Beispiel entspricht e69e056c702d der Container-ID.

    docker exec -it e69e056c702d /bin/bash
    

    Tipp

    Sie müssen nicht immer die gesamte Container-ID angeben. Sie müssen nur ausreichend Zeichen angeben, um diese eindeutig zu identifizieren. In diesem Beispiel reicht es aus, e6 oder e69 anstelle der vollständigen ID zu verwenden.

  2. Wenn Sie sich im Container befinden, stellen Sie eine lokale Verbindung mit sqlcmd her. Da sqlcmd nicht standardmäßig im Pfad enthalten ist, müssen Sie selbst den vollständigen Pfand angeben.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourPassword>'
    
  3. Wenn Sie mit sqlcmd fertig sind, geben Sie folgendes ein exit.

  4. Wenn Sie mit der interaktiven Eingabeaufforderung fertig sind, geben Sie exit ein. Der Container wird auch nach dem Beenden der interaktiven Bash-Shell weiter ausgeführt.

Herstellen einer Verbindung mit Azure SQL Edge aus einem anderen Container auf demselben Host

Da zwei Container, die auf demselben Host ausgeführt werden, sich im selben Docker-Netzwerk befinden, können Sie problemlos über den Containernamen und die Portadresse des Diensts auf sie zugreifen. Wenn Sie z. B. eine Verbindung mit der Azure SQL Edge-Instanz aus einem anderen Python-Modul (Container) auf demselben Host herstellen, können Sie eine Verbindungszeichenfolge ähnlich der folgenden verwenden. (Im folgenden Beispiel wird davon ausgegangen, dass Azure SQL Edge für das Lauschen am Standardport konfiguriert ist.)

import pyodbc
server = 'MySQLEdgeContainer' # Replace this with the actual name of your SQL Edge Docker container
username = 'sa' # SQL Server username
password = 'MyStrongestP@ssword' # Replace this with the actual SA password from your deployment
database = 'MyEdgeDatabase' # Replace this with the actual database name from your deployment. If you do not have a database created, you can use Master database.
db_connection_string = "Driver={ODBC Driver 17 for SQL Server};Server=" + server + ";Database=" + database + ";UID=" + username + ";PWD=" + password + ";"
conn = pyodbc.connect(db_connection_string, autocommit=True)

Herstellen einer Verbindung mit Azure SQL Edge von einem anderen Netzwerkcomputer

Möglicherweise möchten Sie von einem anderen Computer im Netzwerk aus eine Verbindung mit der Azure SQL Edge-Instanz herstellen. Verwenden Sie hierzu die IP-Adresse des Docker-Hosts und den Hostport, dem der Azure SQL Edge-Container zugeordnet ist. Wenn beispielsweise die IP-Adresse des Docker-Hosts lautet 192.168.2.121und der Azure SQL Edge-Container dem Hostport 1600 zugeordnet ist, lautet 192.168.2.121,1600die Serveradresse für die Instanz von Azure SQL Edge. Das aktualisierte Python-Skript lautet:

import pyodbc
server = '192.168.2.121,1600' # Replace this with the actual name or IP address of your SQL Edge Docker container
username = 'sa' # SQL Server username
password = 'MyStrongestP@ssword' # Replace this with the actual SA password from your deployment
database = 'MyEdgeDatabase' # Replace this with the actual database name from your deployment. If you do not have a database created, you can use Master database.
db_connection_string = "Driver={ODBC Driver 17 for SQL Server};Server=" + server + ";Database=" + database + ";UID=" + username + ";PWD=" + password + ";"
conn = pyodbc.connect(db_connection_string, autocommit=True)

Informationen zum Herstellen einer Verbindung mit einer Azure SQL Edge-Instanz mithilfe von SQL Server Management Studio auf einem Windows-Computer finden Sie unter SQL Server Management Studio.

Informationen zum Herstellen einer Verbindung mit einer Instanz von Azure SQL Edge mithilfe von Visual Studio Code auf einem Windows-, macOS- oder Linux-Computer finden Sie unter Visual Studio Code.

Informationen zum Herstellen einer Verbindung mit einer Instanz von Azure SQL Edge mithilfe von Azure Data Studio auf einem Windows-, macOS- oder Linux-Computer finden Sie unter Azure Data Studio.

Nächste Schritte