このページでは、サポートされている認証方法とクライアントを示し、Service Connector を使用して Microsoft Fabric の SQL データベースにアプリを接続するために使用できるサンプル コードを示します。 このページには、サービス接続を作成するときに取得する既定の環境変数の名前と値も示されています。
サポートされているコンピューティング サービス
Service Connector を使用して、次のコンピューティング サービスを Fabric の SQL データベースに接続できます。
- Azure App Service
- Azure コンテナー アプリ
- Azure Functions (アジュール ファンクションズ)
- Azure Kubernetes Service (AKS)
サポートされている認証の種類とクライアントの種類
次の表は、Service Connector を使用して Fabric の SQL データベースにコンピューティング サービスを接続するためにサポートされる認証方法とクライアントの組み合わせを示しています。 "はい" は組み合わせがサポートされていることを示し、"いいえ" はサポートされていないことを示します。
| クライアントの種類 |
システムによって割り当てられた管理ID |
ユーザーが割り当てた管理ID |
シークレット/接続文字列 |
サービス プリンシパル |
| 。網 |
イエス |
イエス |
いいえ |
いいえ |
| 行く |
イエス |
イエス |
いいえ |
いいえ |
| ジャワ |
イエス |
イエス |
いいえ |
いいえ |
| Java - スプリングブート |
イエス |
イエス |
いいえ |
いいえ |
| Python(プログラミング言語) |
イエス |
イエス |
いいえ |
いいえ |
| 無し |
イエス |
イエス |
いいえ |
いいえ |
この表は、Fabric の動作に従って、マネージド ID を介した認証のみが許可されることを示しています。
システム割り当てマネージド ID とユーザー割り当てマネージド ID メソッドは、.NET、Java、Java - Spring Boot、Python、Go、および None クライアントの種類でサポートされています。 これらのメソッドは、他の型ではサポートされていません。
既定の環境変数名またはアプリケーション プロパティとサンプル コード
Fabric の SQL データベースにコンピューティング サービスを接続するには、次のタブに示されている接続の詳細とサンプル コードを参照してください。 名前付け規則の詳細については、「Service Connector の内部構造」を参照してください。
注
Fabric の SQL データベースは Azure SQL Database とは異なりますが、Azure SQL Database と同じ方法で Fabric の SQL データベースに接続してクエリを実行できます。
詳細については、こちらを参照してください。
システムによって割り当てられた管理ID
| 既定の環境変数名 |
説明 |
値の例 |
FABRIC_SQL_CONNECTIONSTRING |
Azure SQL Database の接続文字列 |
Data Source=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;Initial Catalog=<SQL-DB-name>-<Fabric-DB-Identifier>;Authentication=ActiveDirectoryManagedIdentity |
| 既定の環境変数名 |
説明 |
サンプル値 |
FABRIC_SQL_CONNECTIONSTRING |
Azure SQL Database の接続文字列 |
jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; |
| 既定の環境変数名 |
説明 |
サンプル値 |
FABRIC_SQL_CONNECTIONSTRING |
Azure SQL Database の接続文字列 |
jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; |
| 既定の環境変数名 |
説明 |
値の例 |
FABRIC_SQL_CONNECTIONSTRING |
Azure SQL Database の接続文字列 |
Driver={ODBC Driver 17 for SQL Server};Server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;Database=<SQL-DB-name>-<Fabric-DB-Identifier>;Authentication=ActiveDirectoryMSI; |
| 既定の環境変数名 |
説明 |
値の例 |
FABRIC_SQL_CONNECTIONSTRING |
Azure SQL Database の接続文字列 |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;fedauth=ActiveDirectoryManagedIdentity; |
| 既定の環境変数名 |
説明 |
値の例 |
FABRIC_SQL_CONNECTIONSTRING |
Azure SQL Database の接続文字列 |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;fedauth=ActiveDirectoryManagedIdentity; |
サンプル コード
システム割り当てマネージド ID を使用して Fabric の SQL データベースに接続する手順とコード スニペットを次に示します。
依存関係をインストールします。
dotnet add package Microsoft.Data.SqlClient
Service Connector によって追加された環境変数から、Microsoft Fabric 接続文字列の SQL データベースを取得します。
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("FABRIC_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
詳細については、「 Active Directory マネージド ID 認証の使用」を参照してください。
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>
Service Connector によって追加された環境変数から、Microsoft Fabric 接続文字列の SQL データベースを取得します。
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) {
// FABRIC_SQL_CONNECTIONSTRING should be one of the following:
// For system-assigned managed identity: "jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI;"
// For user-assigned managed identity: "jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI;"
String connectionString = System.getenv("FABRIC_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 によって、値形式FABRIC_SQL_CONNECTIONSTRINGの環境変数jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI;が Azure Spring Apps に設定されます。
ユーザー割り当てマネージド ID の場合、 msiClientId=<msiClientId>; が追加されます。
チュートリアル「Azure SQL Database でパスワードレス接続を使用するように Java アプリケーションを移行する」に従って、アプリケーションを更新します。
spring.datasource.password構成プロパティが以前に設定されている場合は必ず削除し、正しい依存関係を追加してください。
spring:
datasource:
url: ${FABRIC_SQL_CONNECTIONSTRING}
依存関係をインストールします。
python -m pip install pyodbc
Service Connector によって追加された環境変数から、Microsoft Fabric 接続文字列の SQL データベースを取得します。 コンピューティング サービスとして Azure Container Apps を使用している場合、またはコード スニペット内の接続文字列が機能しない場合は、「パスワードなしの資格情報を使用して Microsoft Fabric の SQL データベースに接続するために、Azure SQL Database とのパスワードなしの接続を使用する Python アプリケーションを移行 する」を参照してください。
Authentication=ActiveDirectoryMSI; は、マネージド ID を使用して接続するときに接続文字列に必要です。
UID=<msiClientId> は、ユーザー割り当てマネージド ID を使用して接続するときにも接続文字列に必要です。
import os
import pyodbc, struct
from azure.identity import DefaultAzureCredential
connStr = os.getenv('FABRIC_SQL_CONNECTIONSTRING')
# System-assigned managed identity connection string format
# `Driver={ODBC Driver 17 for SQL Server};Server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;Database=<SQL-DB-name>-<Fabric-DB-Identifier>;Authentication=ActiveDirectoryMSI;`
# User-assigned managed identity connection string format
# `Driver={ODBC Driver 17 for SQL Server};Server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;Database=<SQL-DB-name>-<Fabric-DB-Identifier>;UID=<msiClientId>;Authentication=ActiveDirectoryMSI;`
conn = pyodbc.connect(connString)
- 依存関係をインストールします。
go mod init <YourProjectName>
go mod tidy
- Service Connector によって追加された環境変数から、Microsoft Fabric 接続文字列の SQL データベースを取得します。
package main
import (
"github.com/microsoft/go-mssqldb/azuread"
"database/sql"
"context"
"log"
"fmt"
"os"
)
var db *sql.DB
var connectionString = os.Getenv("FABRIC_SQL_CONNECTIONSTRING")
func main() {
var err error
// Create connection pool
db, err = sql.Open(azuread.DriverName, connectionString)
if err != nil {
log.Fatal("Error creating connection pool: ", err.Error())
}
ctx := context.Background()
err = db.PingContext(ctx)
if err != nil {
log.Fatal(err.Error())
}
fmt.Printf("Connected!\n")
}
詳細については、「 Golang を使用して Azure SQL Database のデータベースにクエリを実行する」を参照してください。
詳細については、「 Microsoft Fabric で SQL データベースに接続する」を参照してください。
ユーザー割り当てマネージド ID
| 既定の環境変数名 |
説明 |
値の例 |
FABRIC_SQL_CONNECTIONSTRING |
Azure SQL Database の接続文字列 |
Data Source=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;Initial Catalog=<SQL-DB-name>-<Fabric-DB-Identifier>;User ID=<msiClientId>;Authentication=ActiveDirectoryManagedIdentity |
| 既定の環境変数名 |
説明 |
サンプル値 |
FABRIC_SQL_CONNECTIONSTRING |
Azure SQL Database の接続文字列 |
jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| 既定の環境変数名 |
説明 |
サンプル値 |
FABRIC_SQL_CONNECTIONSTRING |
Azure SQL Database の接続文字列 |
jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| 既定の環境変数名 |
説明 |
値の例 |
FABRIC_SQL_CONNECTIONSTRING |
Azure SQL Database の接続文字列 |
Driver={ODBC Driver 17 for SQL Server};Server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;Database=<SQL-DB-name>-<Fabric-DB-Identifier>;UID=<msiClientId>;Authentication=ActiveDirectoryMSI; |
| 既定の環境変数名 |
説明 |
値の例 |
FABRIC_SQL_CONNECTIONSTRING |
Azure SQL Database の接続文字列 |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;user id=<msiClientId>;fedauth=ActiveDirectoryManagedIdentity; |
| 既定の環境変数名 |
説明 |
値の例 |
FABRIC_SQL_CONNECTIONSTRING |
Azure SQL Database の接続文字列 |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;user id=<msiClientId>;fedauth=ActiveDirectoryManagedIdentity; |
サンプル コード
ユーザー割り当てマネージド ID を使用して Fabric の SQL データベースに接続する手順とコード スニペットを次に示します。
依存関係をインストールします。
dotnet add package Microsoft.Data.SqlClient
Service Connector によって追加された環境変数から、Microsoft Fabric 接続文字列の SQL データベースを取得します。
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("FABRIC_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
詳細については、「 Active Directory マネージド ID 認証の使用」を参照してください。
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>
Service Connector によって追加された環境変数から、Microsoft Fabric 接続文字列の SQL データベースを取得します。
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) {
// FABRIC_SQL_CONNECTIONSTRING should be one of the following:
// For system-assigned managed identity: "jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI;"
// For user-assigned managed identity: "jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI;"
String connectionString = System.getenv("FABRIC_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 によって、値形式FABRIC_SQL_CONNECTIONSTRINGの環境変数jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI;が Azure Spring Apps に設定されます。
ユーザー割り当てマネージド ID の場合、 msiClientId=<msiClientId>; が追加されます。
チュートリアル「Azure SQL Database でパスワードレス接続を使用するように Java アプリケーションを移行する」に従って、アプリケーションを更新します。
spring.datasource.password構成プロパティが以前に設定されている場合は必ず削除し、正しい依存関係を追加してください。
spring:
datasource:
url: ${FABRIC_SQL_CONNECTIONSTRING}
依存関係をインストールします。
python -m pip install pyodbc
Service Connector によって追加された環境変数から、Microsoft Fabric 接続文字列の SQL データベースを取得します。 コンピューティング サービスとして Azure Container Apps を使用している場合、またはコード スニペット内の接続文字列が機能しない場合は、「パスワードなしの資格情報を使用して Microsoft Fabric の SQL データベースに接続するために、Azure SQL Database とのパスワードなしの接続を使用する Python アプリケーションを移行 する」を参照してください。
Authentication=ActiveDirectoryMSI; は、マネージド ID を使用して接続するときに接続文字列に必要です。
UID=<msiClientId> は、ユーザー割り当てマネージド ID を使用して接続するときにも接続文字列に必要です。
import os
import pyodbc, struct
from azure.identity import DefaultAzureCredential
connStr = os.getenv('FABRIC_SQL_CONNECTIONSTRING')
# System-assigned managed identity connection string format
# `Driver={ODBC Driver 17 for SQL Server};Server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;Database=<SQL-DB-name>-<Fabric-DB-Identifier>;Authentication=ActiveDirectoryMSI;`
# User-assigned managed identity connection string format
# `Driver={ODBC Driver 17 for SQL Server};Server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;Database=<SQL-DB-name>-<Fabric-DB-Identifier>;UID=<msiClientId>;Authentication=ActiveDirectoryMSI;`
conn = pyodbc.connect(connString)
- 依存関係をインストールします。
go mod init <YourProjectName>
go mod tidy
- Service Connector によって追加された環境変数から、Microsoft Fabric 接続文字列の SQL データベースを取得します。
package main
import (
"github.com/microsoft/go-mssqldb/azuread"
"database/sql"
"context"
"log"
"fmt"
"os"
)
var db *sql.DB
var connectionString = os.Getenv("FABRIC_SQL_CONNECTIONSTRING")
func main() {
var err error
// Create connection pool
db, err = sql.Open(azuread.DriverName, connectionString)
if err != nil {
log.Fatal("Error creating connection pool: ", err.Error())
}
ctx := context.Background()
err = db.PingContext(ctx)
if err != nil {
log.Fatal(err.Error())
}
fmt.Printf("Connected!\n")
}
詳細については、「 Golang を使用して Azure SQL Database のデータベースにクエリを実行する」を参照してください。
詳細については、「 Microsoft Fabric で SQL データベースに接続する」を参照してください。
Fabric で SQL データベースへのアクセスを共有する
Cloud Shell またはローカルの Azure CLI でサービス接続の作成を完了します。
接続が作成されたら、Azure portal でコンピューティング サービス リソースを開き、[Service Connector] メニューを開き、Fabric サービス接続で SQL データベースを見つけます。
SQL データベースを選択して Fabric ポータルに移動します。
Fabric ポータルで、[ セキュリティ ] タブを見つけて、[ SQL セキュリティの管理] を選択します。
ロール db_ddladminを選択し、[ アクセスの管理] を選択します。
システム割り当てマネージド ID の名前、または Fabric のこの SQL データベースへのサービス接続を持つユーザー割り当てマネージド ID の名前が表示されます。 [ データベースの共有] を選択します。 [ データベースの共有 ] オプションが表示されない場合は、残りの手順を続行する必要はありません。
[ アクセスの管理 ] ウィンドウに表示される、新しく作成したシステム割り当てマネージド ID の名前、またはユーザー割り当てマネージド ID の名前を入力して選択します。 必要に応じて、他の ID を追加します。 [ SQL データベースを使用してすべてのデータを読み取る ] チェック ボックスをオンにし、[ 許可] を選択します。
これで、Fabric の SQL データベースへの新しいサービス接続を使用する準備ができました。
次のステップ
Service Connector の詳細については、次の記事を参照してください。