Azure SQL Edge の接続とクエリConnect and query Azure SQL Edge

Azure SQL Edge では、コンテナーをデプロイした後、次のいずれかの場所から SQL データベース エンジンに接続できます。In Azure SQL Edge, after you deploy a container, you can connect to the database engine from any of the following locations:

  • コンテナー内Inside the container
  • 同じホストで実行されている別の Docker コンテナーからFrom another Docker container running on the same host
  • ホスト マシンからFrom the host machine
  • ネットワーク上の他のクライアント コンピューターからFrom any other client machine on the network

Azure SQL Edge に接続するためのツールTools to connect to Azure SQL Edge

次のいずれかの一般的なツールから Azure SQL Edge インスタンスに接続できます。You can connect to an instance of Azure SQL Edge instance from any of these common tools:

  • sqlcmd: sqlcmd クライアント ツールは、Azure SQL Edge のコンテナー イメージに既に含まれています。sqlcmd: sqlcmd client tools are already included in the container image of Azure SQL Edge. 対話型の Bash シェルで実行中のコンテナーにアタッチする場合は、ツールをローカルで実行できます。If you attach to a running container with an interactive bash shell, you can run the tools locally. SQL クライアント ツールは、ARM64 プラットフォームでは使用できません。そのため、ARM64 バージョンの SQL Edge コンテナーには含まれていません。SQL client tools are NOT available on the ARM64 platform, as such they are not included in the ARM64 version of the SQL Edge containers.
  • SQL Server Management StudioSQL Server Management Studio
  • Azure Data StudioAzure Data Studio
  • Visual Studio CodeVisual Studio Code

ネットワーク マシンから Azure SQL Edge データベース エンジンに接続するには、次のものが必要です。To connect to an Azure SQL Edge database engine from a network machine, you need the following:

  • ホスト マシンの IP アドレスまたはネットワーク名 :これは、Azure SQL Edge コンテナーが実行されているホスト マシンです。IP Address or network name of the host machine : This is the host machine where the Azure SQL Edge container is running.

  • Azure SQL Edge コンテナーのホスト ポートのマッピング :これは、Docker コンテナー ポートからホスト上のポートへのマッピングです。Azure SQL Edge container host port mapping : This is the mapping for the Docker container port to a port on the host. コンテナー内では、Azure SQL Edge は常にポート 1433 にマップされます。Within the container, Azure SQL Edge is always mapped to port 1433. これは、必要に応じて変更できます。You can change this if you want to. ポート番号を変更するには、Azure IoT Edge の Azure SQL Edge モジュールの [コンテナーの作成オプション] を更新します。To change the port number, update the Container Create Options for the Azure SQL Edge module in Azure IoT Edge. 次の例では、コンテナーのポート 1433 がホストのポート 1600 にマッピングされています。In the following example, port 1433 on the container is mapped to port 1600 on the host.

    {
        "PortBindings": {
          "1433/tcp": [
            {
              "HostPort": "1600"
            }
          ]
        }
    }
    
  • Azure SQL Edge インスタンスの SA パスワード :これは、Azure SQL Edge のデプロイ時に SA_PASSWORD 環境変数に指定された値です。SA password for the Azure SQL Edge instance : This is the value specified for the SA_PASSWORD environment variable during deployment of Azure SQL Edge.

コンテナー内からデータベース エンジンに接続するConnect to the database engine from within the container

SQL Server コマンドライン ツールは、Azure SQL Edge のコンテナー イメージに含まれています。The SQL Server command-line tools are included in the container image of Azure SQL Edge. 対話型のコマンド プロンプトを使用してコンテナーにアタッチすると、ツールをローカルで実行できます。If you attach to the container with an interactive command prompt, you can run the tools locally. SQL クライアント ツールは、ARM64 プラットフォームでは使用できません。そのため、ARM64 バージョンの SQL Edge コンテナーには含まれていません。SQL client tools are NOT available on the ARM64 platform, as such they are not included in the ARM64 version of the SQL Edge containers.

  1. 実行中のコンテナー内で対話型の Bash シェルを開始するには、docker exec -it コマンドを使用します。Use the docker exec -it command to start an interactive bash shell inside your running container. 次の例では、e69e056c702d はコンテナー ID です。In the following example, e69e056c702d is the container ID.

    docker exec -it <Azure SQL Edge container ID or name> /bin/bash
    

    ヒント

    常にコンテナー ID 全体を指定する必要はありません。You don't always have to specify the entire container ID. 一意に識別するのに十分な文字を指定するだけでかまいません。You only have to specify enough characters to uniquely identify it. したがって、この例では、完全な ID ではなく e6 または e69 を使用すれば十分な可能性があります。So in this example, it might be enough to use e6 or e69, rather than the full ID.

  2. コンテナー内では sqlcmd とローカル接続してください。When you're inside the container, connect locally with sqlcmd. 既定では sqlcmd はパスにないため、完全なパスを指定する必要があります。Sqlcmd isn't in the path by default, so you have to specify the full path.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourPassword>'
    
  3. sqlcmd が完了したら、「exit」と入力します。When you're finished with sqlcmd, type exit.

  4. 対話型コマンド プロンプトでの操作が完了したら、「exit」と入力します。When you're finished with the interactive command prompt, type exit. コンテナーは、対話型の Bash シェルを終了した後も引き続き実行されます。Your container continues to run after you exit the interactive bash shell.

同じホスト上の別のコンテナーから Azure SQL Edge に接続するConnect to Azure SQL Edge from another container on the same host

同じホスト上で実行されている 2 つのコンテナーは同じ Docker ネットワーク上にあるため、サービスのコンテナー名とポート アドレスを使用して簡単にアクセスできます。Because two containers that are running on the same host are on the same Docker network, you can easily access them by using the container name and the port address for the service. たとえば、同じホスト上の別の Python モジュール (コンテナー) から Azure SQL Edge のインスタンスに接続している場合は、次のような接続文字列を使用できますFor example, if you're connecting to the instance of Azure SQL Edge from another python module (container) on the same host, you can use a connection string similar to the following. (この例では、既定のポートでリッスンするように Azure SQL Edge が構成されていることを前提としています)。(This example assumes that Azure SQL Edge is configured to listen on the default port.)


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)

別のネットワーク マシンから Azure SQL Edge に接続するConnect to Azure SQL Edge from another network machine

ネットワーク上の別のマシンから Azure SQL Edge のインスタンスに接続することもできます。You might want to connect to the instance of Azure SQL Edge from another machine on the network. そのためには、Docker ホストの IP アドレスと、Azure SQL Edge コンテナーがマップされているホスト ポートを使用します。To do so, use the IP address of the Docker host and the host port to which the Azure SQL Edge container is mapped. たとえば、Docker ホストの IP アドレスが xxx.xxx.xxx.xxx であり、Azure SQL Edge コンテナーがホストポート 1600 にマップされている場合、Azure SQL Edge のインスタンスのサーバー アドレスは xxx.xxx.xxx.xxx,1600 になります。For example, if the IP address of the Docker host is xxx.xxx.xxx.xxx , and the Azure SQL Edge container is mapped to host port 1600 , then the server address for the instance of Azure SQL Edge would be xxx.xxx.xxx.xxx,1600. 更新された Python スクリプトは次のようになります。The updated python script is:


import pyodbc
server = 'xxx.xxx.xxx.xxx,1600' # 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)

Windows マシン上で実行されている SQL Server Management Studio を使用して Azure SQL Edge のインスタンスに接続するには、SQL Server Management Studio に関するページを参照してください。To connect to an instance of Azure SQL Edge by using SQL Server Management Studio running on a Windows machine, see SQL Server Management Studio.

Windows、Mac、または Linux マシン上で Visual Studio Code を使用して Azure SQL Edge のインスタンスに接続するには、Visual Studio Code に関するページを参照してください。To connect to an instance of Azure SQL Edge by using Visual Studio Code on a Windows, Mac or Linux machine, see Visual Studio Code.

Windows、Mac、または Linux マシン上で Azure Data Studio を使用して Azure SQL Edge のインスタンスに接続するには、Azure Data Studio に関するページを参照してください。To connect to an instance of Azure SQL Edge by using Azure Data Studio on a Windows, Mac or Linux machine, see Azure Data Studio.

次のステップNext steps

接続とクエリConnect and query

Linux に SQL Server ツールをインストールするInstall SQL Server tools on Linux