Service Connector を使用して Azure SQL Database を統合する
[アーティクル] 02/06/2024
6 人の共同作成者
フィードバック
この記事の内容
このページでは、サポートされている認証方法とクライアント、およびサービス コネクタを使ってコンピューティング サービスを Azure SQL Database に接続するために使用できるサンプル コードを示します。 その場合でも、他の方法を使って Azure SQL Database に接続できることがあります。 このページには、サービス接続を作成するときに取得する既定の環境変数の名前と値も示されています。
サポートされているコンピューティング サービス
サービス コネクタを使うと、次のコンピューティング サービスを Azure SQL Database に接続できます。
Azure App Service
Azure Functions
Azure Container Apps
Azure Spring Apps
サポートされている認証の種類とクライアント
次の表は、サービス コネクタを使った Azure SQL Database へのコンピューティング サービスの接続でサポートされている認証方法とクライアントの組み合わせを示したものです。 "はい" はその組み合わせがサポートされていることを示し、"いいえ" はサポートされていないことを示します。
クライアント タイプ
システム割り当てマネージド ID
ユーザー割り当てマネージド ID
シークレット/接続文字列
サービス プリンシパル
.NET
はい
イエス
イエス
はい
Go
いいえ
番号
有効
いいえ
Java
はい
イエス
イエス
はい
Java - Spring Boot
はい
イエス
イエス
はい
Node.js
はい
イエス
イエス
はい
PHP
いいえ
番号
有効
いいえ
Python
はい
イエス
イエス
はい
Python - Django
いいえ
番号
有効
いいえ
Ruby
いいえ
番号
有効
いいえ
なし
有効
イエス
イエス
はい
この表では、シークレットと接続文字列の方法がすべてのクライアントの種類でサポートされていることが示されています。 システム割り当てマネージド ID、ユーザー割り当てマネージド ID、サービス プリンシパルの方法は、.NET、Java、Java - Spring Boot、Node.js、Python、なしの各クライアントの種類でサポートされています。 これらの方法は、Go、PHP、Django、Ruby のクライアントの種類ではサポートされていません。
Note
システム割り当てマネージド ID、ユーザー割り当てマネージド ID、サービス プリンシパルは、Azure CLI でのみサポートされています。
既定の環境変数名またはアプリケーション プロパティとサンプル コード
コンピューティング サービスを Azure SQL Database に接続するには、以下で示す接続の詳細を使います。 下の各例では、プレースホルダーのテキスト <sql-server>
、<sql-database>
、<sql-username>
、<sql-password>
を独自のサーバー名、データベース名、ユーザー ID、パスワードに置換してください。 名前付け規則の詳細については、Service Connector の内部 の記事を参照してください。
システム割り当てマネージド ID
既定の環境変数名
説明
サンプルの値
AZURE_SQL_CONNECTIONSTRING
Azure SQL Database の接続文字列
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Authentication=ActiveDirectoryManagedIdentity
既定の環境変数名
説明
サンプルの値
AZURE_SQL_CONNECTIONSTRING
Azure SQL Database の接続文字列
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;authentication=ActiveDirectoryMSI;
既定の環境変数名
説明
サンプルの値
spring.datasource.url
Azure SQL Database データソースの URL
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI;
既定の環境変数名
説明
サンプルの値
AZURE_SQL_SERVER
Azure SQL Database サーバー
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_AUTHENTICATION
Azure SQL 認証
ActiveDirectoryMsi
既定の環境変数名
説明
サンプルの値
AZURE_SQL_SERVER
Azure SQL Database サーバー
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_AUTHENTICATIONTYPE
Azure SQL Database 認証の種類
azure-active-directory-default
既定の環境変数名
説明
サンプルの値
AZURE_SQL_HOST
Azure SQL Database サーバー
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_AUTHENTICATION
Azure SQL Database 認証の種類
azure-active-directory-default
サンプル コード
システム割り当てマネージド ID を使って Azure SQL Database に接続するには、次の手順とコードを参照してください。
依存関係をインストールします。
dotnet add package Microsoft.Data.SqlClient
サービス コネクタによって追加された環境変数から Azure SQL Database 接続文字列を取得します。
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
詳細については、「Active Directory Managed Identity 認証の使用 」を参照してください。
pom.xml ファイルに次の依存関係を追加します。
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.7.0</version>
</dependency>
サービス コネクタによって追加された環境変数から Azure SQL Database 接続文字列を取得します。
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
public class Main {
public static void main(String[] args) {
// AZURE_SQL_CONNECTIONSTRING should be one of the following:
// For system-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};authentication=ActiveDirectoryMSI;"
// For user-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};msiClientId={UserAssignedMiClientId};authentication=ActiveDirectoryMSI;"
// For service principal: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};user={ServicePrincipalClientId};password={spSecret};authentication=ActiveDirectoryServicePrincipal;"
String connectionString = System.getenv("AZURE_SQL_CONNECTIONSTRING");
SQLServerDataSource ds = new SQLServerDataSource();
ds.setURL(connectionString);
try (Connection connection = ds.getConnection()) {
System.out.println("Connected successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
その他の情報については、「マネージド ID を使用してシークレットなしで App Service から Azure データベースに接続する 」を参照してください。
Spring アプリケーションの場合、オプション --client-type springboot
を使用して接続を作成すると、Service Connector によって、プロパティ spring.datasource.url
が値形式 jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI;
を使用して Azure Spring Apps に設定されます。
チュートリアル「Azure SQL Database でパスワードレス接続を使用するように Java アプリケーションを移行する 」に従って、アプリケーションを更新します。 spring.datasource.password
構成プロパティが以前に設定されている場合は必ず削除し、正しい依存関係を追加します。
依存関係をインストールします。
python -m pip install pyodbc
サービス コネクタによって追加された環境変数から Azure SQL Database 接続構成を取得します。 次のコードを使用する場合は、使用する認証型のコード スニペットの一部をコメント解除します。 コンピューティング サービスとして Azure Container Apps を使っている場合、またはコード スニペットの接続文字列が機能しない場合は、「Azure SQL Database との間でパスワードレス接続を使うように Python アプリケーションを移行する 」を参照し、アクセス トークンを使って Azure SQL Database に接続してください。
import os
import pyodbc
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
authentication = os.getenv('AZURE_SQL_AUTHENTICATION')
# Uncomment the following lines according to the authentication type.
# For system-assigned managed identity.
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# clientID = os.getenv('AZURE_SQL_USER')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={clientID};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={user};PWD={password};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = pyodbc.connect(connString)
依存関係をインストールします。
npm install mssql
サービス コネクタによって追加された環境変数から Azure SQL Database 接続構成を取得します。 次のコードを使用する場合は、使用する認証の種類のコード スニペットの部分をコメント解除します。
import sql from 'mssql';
const server = process.env.AZURE_SQL_SERVER;
const database = process.env.AZURE_SQL_DATABASE;
const port = parseInt(process.env.AZURE_SQL_PORT);
const authenticationType = process.env.AZURE_SQL_AUTHENTICATIONTYPE;
// Uncomment the following lines according to the authentication type.
// For system-assigned managed identity.
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true
// }
// };
// For user-assigned managed identity.
// const clientId = process.env.AZURE_SQL_CLIENTID;
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true,
// clientId: clientId
// }
// };
// For service principal.
// const clientId = process.env.AZURE_SQL_CLIENTID;
// const clientSecret = process.env.AZURE_SQL_CLIENTSECRET;
// const tenantId = process.env.AZURE_SQL_TENANTID;
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true,
// clientId: clientId,
// clientSecret: clientSecret,
// tenantId: tenantId
// }
// };
this.poolconnection = await sql.connect(config);
詳細については、「Microsoft SQL Server に対するクライアント プログラミングのホーム ページ 」を参照してください。
ユーザー割り当てマネージド ID
既定の環境変数名
説明
サンプルの値
AZURE_SQL_CONNECTIONSTRING
Azure SQL Database の接続文字列
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity
既定の環境変数名
説明
サンプルの値
AZURE_SQL_CONNECTIONSTRING
Azure SQL Database の接続文字列
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI;
既定の環境変数名
説明
サンプルの値
spring.datasource.url
Azure SQL Database データソースの URL
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI;
既定の環境変数名
説明
サンプルの値
AZURE_SQL_SERVER
Azure SQL Database サーバー
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_USER
Azure SQL Database のユーザー
Object (principal) ID
AZURE_SQL_AUTHENTICATION
Azure SQL 認証
ActiveDirectoryMsi
既定の環境変数名
説明
サンプルの値
AZURE_SQL_SERVER
Azure SQL Database サーバー
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_AUTHENTICATIONTYPE
Azure SQL Database 認証の種類
azure-active-directory-default
AZURE_SQL_CLIENTID
Azure SQL Database クライアント ID
<identity-client-ID>
既定の環境変数名
説明
サンプルの値
AZURE_SQL_HOST
Azure SQL Database サーバー
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_AUTHENTICATION
Azure SQL Database 認証の種類
azure-active-directory-default
AZURE_SQL_USERNAME
Azure SQL Database クライアント ID
<your Client ID>
サンプル コード
ユーザー割り当てマネージド ID を使って Azure SQL Database に接続するには、次の手順とコードを参照してください。
依存関係をインストールします。
dotnet add package Microsoft.Data.SqlClient
サービス コネクタによって追加された環境変数から Azure SQL Database 接続文字列を取得します。
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
詳細については、「Active Directory Managed Identity 認証の使用 」を参照してください。
pom.xml ファイルに次の依存関係を追加します。
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.7.0</version>
</dependency>
サービス コネクタによって追加された環境変数から Azure SQL Database 接続文字列を取得します。
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
public class Main {
public static void main(String[] args) {
// AZURE_SQL_CONNECTIONSTRING should be one of the following:
// For system-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};authentication=ActiveDirectoryMSI;"
// For user-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};msiClientId={UserAssignedMiClientId};authentication=ActiveDirectoryMSI;"
// For service principal: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};user={ServicePrincipalClientId};password={spSecret};authentication=ActiveDirectoryServicePrincipal;"
String connectionString = System.getenv("AZURE_SQL_CONNECTIONSTRING");
SQLServerDataSource ds = new SQLServerDataSource();
ds.setURL(connectionString);
try (Connection connection = ds.getConnection()) {
System.out.println("Connected successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
その他の情報については、「マネージド ID を使用してシークレットなしで App Service から Azure データベースに接続する 」を参照してください。
Spring アプリケーションの場合、オプション --client-type springboot
を使用して接続を作成すると、Service Connector によって、プロパティ spring.datasource.url
が値形式 jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI;
を使用して Azure Spring Apps に設定されます。
チュートリアル「Azure SQL Database でパスワードレス接続を使用するように Java アプリケーションを移行する 」に従って、アプリケーションを更新します。 spring.datasource.password
構成プロパティが以前に設定されている場合は必ず削除し、正しい依存関係を追加します。
依存関係をインストールします。
python -m pip install pyodbc
サービス コネクタによって追加された環境変数から Azure SQL Database 接続構成を取得します。 次のコードを使用する場合は、使用する認証型のコード スニペットの一部をコメント解除します。 コンピューティング サービスとして Azure Container Apps を使っている場合、またはコード スニペットの接続文字列が機能しない場合は、「Azure SQL Database との間でパスワードレス接続を使うように Python アプリケーションを移行する 」を参照し、アクセス トークンを使って Azure SQL Database に接続してください。
import os
import pyodbc
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
authentication = os.getenv('AZURE_SQL_AUTHENTICATION')
# Uncomment the following lines according to the authentication type.
# For system-assigned managed identity.
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# clientID = os.getenv('AZURE_SQL_USER')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={clientID};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={user};PWD={password};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = pyodbc.connect(connString)
依存関係をインストールします。
npm install mssql
サービス コネクタによって追加された環境変数から Azure SQL Database 接続構成を取得します。 次のコードを使用する場合は、使用する認証の種類のコード スニペットの部分をコメント解除します。
import sql from 'mssql';
const server = process.env.AZURE_SQL_SERVER;
const database = process.env.AZURE_SQL_DATABASE;
const port = parseInt(process.env.AZURE_SQL_PORT);
const authenticationType = process.env.AZURE_SQL_AUTHENTICATIONTYPE;
// Uncomment the following lines according to the authentication type.
// For system-assigned managed identity.
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true
// }
// };
// For user-assigned managed identity.
// const clientId = process.env.AZURE_SQL_CLIENTID;
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true,
// clientId: clientId
// }
// };
// For service principal.
// const clientId = process.env.AZURE_SQL_CLIENTID;
// const clientSecret = process.env.AZURE_SQL_CLIENTSECRET;
// const tenantId = process.env.AZURE_SQL_TENANTID;
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true,
// clientId: clientId,
// clientSecret: clientSecret,
// tenantId: tenantId
// }
// };
this.poolconnection = await sql.connect(config);
詳細については、「Microsoft SQL Server に対するクライアント プログラミングのホーム ページ 」を参照してください。
Connection String
既定の環境変数名
説明
サンプルの値
AZURE_SQL_CONNECTIONSTRING
Azure SQL Database の接続文字列
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Password=<sql-password>
既定の環境変数名
説明
サンプルの値
AZURE_SQL_CONNECTIONSTRING
Azure SQL Database の接続文字列
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<sql-username>;password=<sql-password>;
既定の環境変数名
説明
サンプルの値
spring.datasource.url
Azure SQL Database データソースの URL
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;
spring.datasource.username
Azure SQL Database データソースのユーザー名
<sql-user>
spring.datasource.password
Azure SQL Database データソースのパスワード
<sql-password>
既定の環境変数名
説明
サンプルの値
AZURE_SQL_SERVER
Azure SQL Database サーバー
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_USER
Azure SQL Database のユーザー
<sql-username>
AZURE_SQL_PASSWORD
Azure SQL Database のパスワード
<sql-password>
既定の環境変数名
説明
サンプルの値
AZURE_SQL_HOST
Azure SQL Database のホスト
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_NAME
Azure SQL Database の名前
<sql-database>
AZURE_SQL_USER
Azure SQL Database のユーザー
<sql-username>
AZURE_SQL_PASSWORD
Azure SQL Database のパスワード
<sql-password>
既定の環境変数名
説明
サンプルの値
AZURE_SQL_CONNECTIONSTRING
Azure SQL Database の接続文字列
server=<sql-server>.database.windows.net;port=1433;database=<sql-database>;user id=<sql-username>;password=<sql-password>;
既定の環境変数名
説明
サンプルの値
AZURE_SQL_SERVER
Azure SQL Database サーバー
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_USERNAME
Azure SQL Database のユーザー名
<sql-username>
AZURE_SQL_PASSWORD
Azure SQL Database のパスワード
<sql-password>
既定の環境変数名
説明
サンプルの値
AZURE_SQL_SERVERNAME
Azure SQL Database のサーバー名
<sql-server>.database.windows.net,1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_UID
Azure SQL Database の一意識別子 (UID)
<sql-username>
AZURE_SQL_PASSWORD
Azure SQL Database のパスワード
<sql-password>
既定の環境変数名
説明
サンプルの値
AZURE_SQL_HOST
Azure SQL Database のホスト
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_USERNAME
Azure SQL Database のユーザー名
<sql-username>
AZURE_SQL_PASSWORD
Azure SQL Database のパスワード
<sql-password>
既定の環境変数名
説明
サンプルの値
AZURE_SQL_HOST
Azure SQL Database のホスト
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_USERNAME
Azure SQL Database のユーザー名
<sql-username>
AZURE_SQL_PASSWORD
Azure SQL Database のパスワード
<sql-password>
サンプル コード
接続文字列を使って Azure SQL Database に接続するには、次の手順とコードを参照してください。
依存関係をインストールします。
dotnet add package Microsoft.Data.SqlClient
サービス コネクタによって追加された環境変数から Azure SQL Database 接続文字列を取得します。
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
pom.xml ファイルに次の依存関係を追加します。
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
サービス コネクタによって追加された環境変数から Azure SQL Database 接続文字列を取得します。
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
public class Main {
public static void main(String[] args) {
String connectionString = System.getenv("AZURE_SQL_CONNECTIONSTRING");
SQLServerDataSource ds = new SQLServerDataSource();
ds.setURL(connectionString);
try (Connection connection = ds.getConnection()) {
System.out.println("Connected successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
依存関係を "pom.xml" ファイルに追加します。<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>4.12.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Spring アプリケーションを設定します。 サービス コネクタによって、接続構成が Spring Apps に追加されます。
依存関係をインストールします。
python -m pip install pyodbc
サービス コネクタによって追加された環境変数から Azure SQL Database 接続構成を取得します。
import os;
import pyodbc
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
user = os.getenv('AZURE_SQL_USER')
password = os.getenv('AZURE_SQL_PASSWORD')
connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server={server},{port};Database={database};UID={user};PWD={password};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = pyodbc.connect(connString)
依存関係をインストールします。
pip install django
pip install pyodbc
設定ファイルで、サービス コネクタによって追加された環境変数から Azure SQL Database の接続構成を取得します。
# in your setting file, eg. settings.py
server = os.getenv('AZURE_SQL_HOST')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_NAME')
user = os.getenv('AZURE_SQL_USER')
password = os.getenv('AZURE_SQL_PASSWORD')
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': databse,
'USER': user,
'PASSWORD': password,
'HOST': server,
'PORT': port,
'OPTIONS': {
'driver': 'ODBC Driver 13 for SQL Server',
},
},
}
依存関係をインストールします。
go install github.com/microsoft/go-mssqldb@latest
サービス コネクタによって追加された環境変数から Azure SQL Database 接続文字列を取得します。
import (
"context"
"database/sql"
"fmt"
"log"
"github.com/microsoft/go-mssqldb/azuread"
)
connectionString := os.Getenv("AZURE_SQL_CONNECTIONSTRING")
db, err = sql.Open(azuread.DriverName, connString)
if err != nil {
log.Fatal("Error creating connection pool: " + err.Error())
}
log.Printf("Connected!\n")
依存関係をインストールします。
npm install mssql
サービス コネクタによって追加された環境変数から Azure SQL Database 接続構成を取得します。
import sql from 'mssql';
const server = process.env.AZURE_SQL_SERVER;
const database = process.env.AZURE_SQL_DATABASE;
const port = parseInt(process.env.AZURE_SQL_PORT);
const username = process.env.AZURE_SQL_USERNAME;
const password = process.env.AZURE_SQL_PASSWORD;
const config = {
server,
port,
database,
user,
password,
options: {
encrypt: true
}
};
this.poolconnection = await sql.connect(config);
SQL Server 用の Microsoft Drivers for PHP をダウンロードします。 詳しくは、「SQL Server 用 Microsoft Drivers for PHP の概要 」をご覧ください。
サービス コネクタによって追加された環境変数から Azure SQL Database 接続構成を取得します。
<?php
$server = getenv("AZURE_SQL_SERVERNAME");
$database = getenv("AZURE_SQL_DATABASE");
$user = getenv("AZURE_SQL_UID");
$password = getenv("AZURE_SQL_PASSWORD");
$connectionOptions = array(
"Database" => database,
"Uid" => user,
"PWD" => password
);
$conn = sqlsrv_connect($serverName, $connectionOptions);
?>
SQL Server 用の Ruby ドライバーをダウンロードします。 詳しくは、「Ruby 開発用に開発環境を構成する 」をご覧ください。
サービス コネクタによって追加された環境変数から Azure SQL Database 接続構成を取得します。
client = TinyTds::Client.new username: ENV['AZURE_SQL_USERNAME'], password: ENV['AZURE_SQL_PASSWORD'],
host: ENV['AZURE_SQL_HOST'], port: ENV['AZURE_SQL_PORT'],
database: ENV['AZURE_SQL_DATABASE'], azure:true
詳細については、「Microsoft SQL Server に対するクライアント プログラミングのホーム ページ 」を参照してください。
サービス プリンシパル
既定の環境変数名
説明
例値
AZURE_SQL_CLIENTID
クライアント ID
<client-ID>
AZURE_SQL_CLIENTSECRET
クライアント シークレット
<client-secret>
AZURE_SQL_TENANTID
テナント ID
<tenant-ID>
AZURE_SQL_CONNECTIONSTRING
Azure SQL Database の接続文字列
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal
既定の環境変数名
説明
サンプルの値
AZURE_SQL_CONNECTIONSTRING
Azure SQL Database の接続文字列
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<client-Id>;password=<client-secret>;authentication=ActiveDirectoryServicePrincipal;
既定の環境変数名
説明
サンプルの値
spring.datasource.url
Azure SQL Database データソースの URL
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryServicePrincipal;
spring.datasource.username
Azure SQL Database データソースのユーザー名
<client-Id>
spring.datasource.password
Azure SQL Database データソースのパスワード
<client-Secret>
既定の環境変数名
説明
サンプルの値
AZURE_SQL_SERVER
Azure SQL Database サーバー
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_USER
Azure SQL Database のユーザー
your Client Id
AZURE_SQL_AUTHENTICATION
Azure SQL 認証
ActiveDirectoryServerPrincipal
AZURE_SQL_PASSWORD
Azure SQL Database のパスワード
your Client Secret
既定の環境変数名
説明
サンプルの値
AZURE_SQL_SERVER
Azure SQL Database サーバー
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_AUTHENTICATIONTYPE
Azure SQL Database 認証の種類
azure-active-directory-default
AZURE_SQL_CLIENTID
Azure SQL Database クライアント ID
<your Client ID>
AZURE_SQL_CLIENTSECRET
Azure SQL Database クライアント シークレット
<your Client Secret >
AZURE_SQL_TENANTID
Azure SQL Database テナント ID
<your Tenant ID>
既定の環境変数名
説明
サンプルの値
AZURE_SQL_HOST
Azure SQL Database サーバー
<sql-server>.database.windows.net
AZURE_SQL_PORT
Azure SQL Database のポート
1433
AZURE_SQL_DATABASE
Azure SQL Database のデータベース
<sql-database>
AZURE_SQL_AUTHENTICATION
Azure SQL Database 認証の種類
azure-active-directory-default
AZURE_SQL_USERNAME
Azure SQL Database クライアント ID
<your Client ID>
AZURE_SQL_PASSWORD
Azure SQL Database クライアント シークレット
<your Client Secret >
サンプル コード
サービス プリンシパルを使って Azure SQL Database に接続するには、次の手順とコードを参照してください。
依存関係をインストールします。
dotnet add package Microsoft.Data.SqlClient
サービス コネクタによって追加された環境変数から Azure SQL Database 接続文字列を取得します。
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
詳細については、「Active Directory Managed Identity 認証の使用 」を参照してください。
pom.xml ファイルに次の依存関係を追加します。
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.7.0</version>
</dependency>
サービス コネクタによって追加された環境変数から Azure SQL Database 接続文字列を取得します。
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
public class Main {
public static void main(String[] args) {
// AZURE_SQL_CONNECTIONSTRING should be one of the following:
// For system-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};authentication=ActiveDirectoryMSI;"
// For user-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};msiClientId={UserAssignedMiClientId};authentication=ActiveDirectoryMSI;"
// For service principal: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};user={ServicePrincipalClientId};password={spSecret};authentication=ActiveDirectoryServicePrincipal;"
String connectionString = System.getenv("AZURE_SQL_CONNECTIONSTRING");
SQLServerDataSource ds = new SQLServerDataSource();
ds.setURL(connectionString);
try (Connection connection = ds.getConnection()) {
System.out.println("Connected successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
その他の情報については、「マネージド ID を使用してシークレットなしで App Service から Azure データベースに接続する 」を参照してください。
Spring アプリケーションの場合、オプション --client-type springboot
を使用して接続を作成すると、Service Connector によって、プロパティ spring.datasource.url
が値形式 jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI;
を使用して Azure Spring Apps に設定されます。
チュートリアル「Azure SQL Database でパスワードレス接続を使用するように Java アプリケーションを移行する 」に従って、アプリケーションを更新します。 spring.datasource.password
構成プロパティが以前に設定されている場合は必ず削除し、正しい依存関係を追加します。
依存関係をインストールします。
python -m pip install pyodbc
サービス コネクタによって追加された環境変数から Azure SQL Database 接続構成を取得します。 次のコードを使用する場合は、使用する認証型のコード スニペットの一部をコメント解除します。 コンピューティング サービスとして Azure Container Apps を使っている場合、またはコード スニペットの接続文字列が機能しない場合は、「Azure SQL Database との間でパスワードレス接続を使うように Python アプリケーションを移行する 」を参照し、アクセス トークンを使って Azure SQL Database に接続してください。
import os
import pyodbc
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
authentication = os.getenv('AZURE_SQL_AUTHENTICATION')
# Uncomment the following lines according to the authentication type.
# For system-assigned managed identity.
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# clientID = os.getenv('AZURE_SQL_USER')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={clientID};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={user};PWD={password};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = pyodbc.connect(connString)
依存関係をインストールします。
npm install mssql
サービス コネクタによって追加された環境変数から Azure SQL Database 接続構成を取得します。 次のコードを使用する場合は、使用する認証の種類のコード スニペットの部分をコメント解除します。
import sql from 'mssql';
const server = process.env.AZURE_SQL_SERVER;
const database = process.env.AZURE_SQL_DATABASE;
const port = parseInt(process.env.AZURE_SQL_PORT);
const authenticationType = process.env.AZURE_SQL_AUTHENTICATIONTYPE;
// Uncomment the following lines according to the authentication type.
// For system-assigned managed identity.
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true
// }
// };
// For user-assigned managed identity.
// const clientId = process.env.AZURE_SQL_CLIENTID;
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true,
// clientId: clientId
// }
// };
// For service principal.
// const clientId = process.env.AZURE_SQL_CLIENTID;
// const clientSecret = process.env.AZURE_SQL_CLIENTSECRET;
// const tenantId = process.env.AZURE_SQL_TENANTID;
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true,
// clientId: clientId,
// clientSecret: clientSecret,
// tenantId: tenantId
// }
// };
this.poolconnection = await sql.connect(config);
詳細については、「Microsoft SQL Server に対するクライアント プログラミングのホーム ページ 」を参照してください。
次のステップ
Service Connector の詳細については、以下のチュートリアルに従ってください。