Diese Seite zeigt unterstützte Authentifizierungsmethoden und -clients und zeigt Beispielcode an, mit dem Sie Ihre Apps mit der SQL-Datenbank in Microsoft Fabric mithilfe von Service Connector verbinden können. Auf dieser Seite werden auch die Namen und Werte der Standardumgebungsvariablen angezeigt, die Sie erhalten, wenn Sie die Dienstverbindung erstellen.
Unterstützte Computedienste
Service Connector kann verwendet werden, um die folgenden Computedienste mit der SQL-Datenbank in Fabric zu verbinden:
- Azure App Service
- Azure Container Apps – ein Dienst für containerbasierte Anwendungen
- Azure-Funktionen
- Azure Kubernetes Service (AKS)
Unterstützte Authentifizierungstypen und Clienttypen
Die folgende Tabelle zeigt, welche Kombinationen von Authentifizierungsmethoden und Clients unterstützt werden, um ihren Computedienst mit sql-Datenbank in Fabric mithilfe von Service Connector zu verbinden. Ein "Ja" gibt an, dass die Kombination unterstützt wird, während ein "Nein" angibt, dass sie nicht unterstützt wird.
| Clienttyp |
Vom System zugewiesene verwaltete Identität |
Vom Benutzer zugewiesene verwaltete Identität |
Geheimnis/Verbindungszeichenfolge |
Service Principal |
| .NETTO |
Ja |
Ja |
Nein |
Nein |
| Geh |
Ja |
Ja |
Nein |
Nein |
| Java |
Ja |
Ja |
Nein |
Nein |
| Java – Spring Boot |
Ja |
Ja |
Nein |
Nein |
| Python |
Ja |
Ja |
Nein |
Nein |
| Nichts |
Ja |
Ja |
Nein |
Nein |
Diese Tabelle gibt an, dass gemäß Fabric-Verhalten nur die Authentifizierung über verwaltete Identitäten zulässig ist.
Die vom System zugewiesenen methoden für verwaltete Identität und vom Benutzer zugewiesene verwaltete Identität werden für .NET-, Java-, Java-, Spring Boot-, Python-, Go- und None-Clienttypen unterstützt. Diese Methoden werden für andere Typen nicht unterstützt.
Namen von Standard-Umgebungsvariablen oder Anwendungseigenschaften und Beispielcode
Für Informationen zu Verbindungsdetails und Beispielcode, konsultieren Sie die folgenden Registerkarten, um Rechendienste mit der SQL-Datenbank in Fabric zu verbinden. Weitere Informationen zu Benennungskonventionen finden Sie im Artikel Besonderheiten des Dienstconnectors.
Hinweis
Obwohl sich die SQL-Datenbank in Fabric von der Azure SQL-Datenbank unterscheidet, können Sie eine Verbindung mit ihrer SQL-Datenbank in Fabric auf die gleiche Weise wie Azure SQL-Datenbank herstellen und abfragen.
Erfahren Sie mehr.
Vom System zugewiesene verwaltete Identität
| Standardname der Umgebungsvariablen |
BESCHREIBUNG |
Beispielwert |
FABRIC_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
Data Source=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;Initial Catalog=<SQL-DB-name>-<Fabric-DB-Identifier>;Authentication=ActiveDirectoryManagedIdentity |
| Standardname der Umgebungsvariablen |
BESCHREIBUNG |
Beispielwert |
FABRIC_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; |
| Standardname der Umgebungsvariablen |
BESCHREIBUNG |
Beispielwert |
FABRIC_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; |
| Standardname der Umgebungsvariablen |
BESCHREIBUNG |
Beispielwert |
FABRIC_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
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; |
| Standardname der Umgebungsvariablen |
BESCHREIBUNG |
Beispielwert |
FABRIC_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;fedauth=ActiveDirectoryManagedIdentity; |
| Standardname der Umgebungsvariablen |
BESCHREIBUNG |
Beispielwert |
FABRIC_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;fedauth=ActiveDirectoryManagedIdentity; |
Beispielcode
Im Folgenden sind die Schritte und Codeausschnitte aufgeführt, um mithilfe einer vom System zugewiesenen verwalteten Identität eine Verbindung mit der SQL-Datenbank in Fabric herzustellen.
Installieren Sie Abhängigkeiten.
dotnet add package Microsoft.Data.SqlClient
Rufen Sie die Verbindungszeichenfolge der Instanz von SQL-Datenbank in Microsoft Fabric aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wurde.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("FABRIC_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Weitere Informationen finden Sie unter Verwenden der verwalteten Active Directory-Identitätsauthentifizierung.
Fügen Sie der Datei pom.xml die folgenden Abhängigkeiten hinzu:
<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>
Rufen Sie die Verbindungszeichenfolge der Instanz von SQL-Datenbank in Microsoft Fabric aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wurde.
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();
}
}
}
Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Azure-Datenbanken über App Service ohne Geheimnisse mithilfe einer verwalteten Identität.
Wenn Sie für eine Spring-Anwendung eine Verbindung mit der Option --client-type springbooterstellen, legt Service Connector die Umgebungsvariable FABRIC_SQL_CONNECTIONSTRING mit dem Wertformat jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; auf Azure Spring Apps fest.
Für verwaltete Identitäten, die vom Benutzer zugewiesen werden, wird msiClientId=<msiClientId>; hinzugefügt.
Aktualisieren Sie Ihre Anwendung nach dem Tutorial Migrieren einer Java-Anwendung zur Verwendung von kennwortlosen Verbindungen mit Azure SQL-Datenbank. Denken Sie daran, die spring.datasource.password Konfigurationseigenschaft zu entfernen, wenn sie zuvor festgelegt wurde, und fügen Sie die richtigen Abhängigkeiten hinzu.
spring:
datasource:
url: ${FABRIC_SQL_CONNECTIONSTRING}
Installieren Sie Abhängigkeiten.
python -m pip install pyodbc
Rufen Sie die Verbindungszeichenfolge der Instanz von SQL-Datenbank in Microsoft Fabric aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wurde. Wenn Sie Azure Container Apps als Computedienst verwenden oder die Verbindungszeichenfolge im Codeschnipsel nicht funktioniert, lesen Sie Migrieren einer Python-Anwendung, um kennwortlose Verbindungen mit Azure SQL-Datenbank zu verwenden,um SQL-Datenbank in Microsoft Fabric mithilfe von kennwortlosen Anmeldeinformationen zu verbinden.
Authentication=ActiveDirectoryMSI; ist in der Verbindungszeichenfolge beim Herstellen einer Verbindung mit verwalteten Identitäten erforderlich.
UID=<msiClientId> ist auch in der Verbindungszeichenfolge erforderlich, wenn eine Verbindung mit einer vom Benutzer zugewiesenen verwalteten Identität hergestellt wird.
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)
- Installieren Sie Abhängigkeiten.
go mod init <YourProjectName>
go mod tidy
- Rufen Sie die Verbindungszeichenfolge der Instanz von SQL-Datenbank in Microsoft Fabric aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wurde.
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")
}
Weitere Informationen finden Sie unter Verwenden von Golang zum Abfragen einer Datenbank in der Azure SQL-Datenbank.
Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Ihrer SQL-Datenbank in Microsoft Fabric.
Benutzerdefinierte verwaltete Identität
| Standardname der Umgebungsvariablen |
BESCHREIBUNG |
Beispielwert |
FABRIC_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
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 |
| Standardname der Umgebungsvariablen |
BESCHREIBUNG |
Beispielwert |
FABRIC_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Standardname der Umgebungsvariablen |
BESCHREIBUNG |
Beispielwert |
FABRIC_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Standardname der Umgebungsvariablen |
BESCHREIBUNG |
Beispielwert |
FABRIC_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
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; |
| Standardname der Umgebungsvariablen |
BESCHREIBUNG |
Beispielwert |
FABRIC_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;user id=<msiClientId>;fedauth=ActiveDirectoryManagedIdentity; |
| Standardname der Umgebungsvariablen |
BESCHREIBUNG |
Beispielwert |
FABRIC_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;user id=<msiClientId>;fedauth=ActiveDirectoryManagedIdentity; |
Beispielcode
Im Folgenden sind die Schritte und Codeausschnitte aufgeführt, um eine Verbindung mit der SQL-Datenbank in Fabric mithilfe einer vom Benutzer zugewiesenen verwalteten Identität herzustellen.
Installieren Sie Abhängigkeiten.
dotnet add package Microsoft.Data.SqlClient
Rufen Sie die Verbindungszeichenfolge der Instanz von SQL-Datenbank in Microsoft Fabric aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wurde.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("FABRIC_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Weitere Informationen finden Sie unter Verwenden der verwalteten Active Directory-Identitätsauthentifizierung.
Fügen Sie der Datei pom.xml die folgenden Abhängigkeiten hinzu:
<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>
Rufen Sie die Verbindungszeichenfolge der Instanz von SQL-Datenbank in Microsoft Fabric aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wurde.
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();
}
}
}
Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Azure-Datenbanken über App Service ohne Geheimnisse mithilfe einer verwalteten Identität.
Wenn Sie für eine Spring-Anwendung eine Verbindung mit der Option --client-type springbooterstellen, legt Service Connector die Umgebungsvariable FABRIC_SQL_CONNECTIONSTRING mit dem Wertformat jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; auf Azure Spring Apps fest.
Für verwaltete Identitäten, die vom Benutzer zugewiesen werden, wird msiClientId=<msiClientId>; hinzugefügt.
Aktualisieren Sie Ihre Anwendung nach dem Tutorial Migrieren einer Java-Anwendung zur Verwendung von kennwortlosen Verbindungen mit Azure SQL-Datenbank. Denken Sie daran, die spring.datasource.password Konfigurationseigenschaft zu entfernen, wenn sie zuvor festgelegt wurde, und fügen Sie die richtigen Abhängigkeiten hinzu.
spring:
datasource:
url: ${FABRIC_SQL_CONNECTIONSTRING}
Installieren Sie Abhängigkeiten.
python -m pip install pyodbc
Rufen Sie die Verbindungszeichenfolge der Instanz von SQL-Datenbank in Microsoft Fabric aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wurde. Wenn Sie Azure Container Apps als Computedienst verwenden oder die Verbindungszeichenfolge im Codeschnipsel nicht funktioniert, lesen Sie Migrieren einer Python-Anwendung, um kennwortlose Verbindungen mit Azure SQL-Datenbank zu verwenden,um SQL-Datenbank in Microsoft Fabric mithilfe von kennwortlosen Anmeldeinformationen zu verbinden.
Authentication=ActiveDirectoryMSI; ist in der Verbindungszeichenfolge beim Herstellen einer Verbindung mit verwalteten Identitäten erforderlich.
UID=<msiClientId> ist auch in der Verbindungszeichenfolge erforderlich, wenn eine Verbindung mit einer vom Benutzer zugewiesenen verwalteten Identität hergestellt wird.
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)
- Installieren Sie Abhängigkeiten.
go mod init <YourProjectName>
go mod tidy
- Rufen Sie die Verbindungszeichenfolge der Instanz von SQL-Datenbank in Microsoft Fabric aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wurde.
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")
}
Weitere Informationen finden Sie unter Verwenden von Golang zum Abfragen einer Datenbank in der Azure SQL-Datenbank.
Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Ihrer SQL-Datenbank in Microsoft Fabric.
Freigeben des Zugriffs auf sql-Datenbank in Fabric
Schließen Sie die Erstellung Ihrer Dienstverbindung in der Cloud Shell oder auf Ihrer lokalen Azure CLI ab.
Nachdem Ihre Verbindung erstellt wurde, öffnen Sie Ihre Computedienstressource im Azure-Portal, öffnen Sie das Menü "Service Connector" und suchen Sie Ihre SQL-Datenbank in der Fabric-Dienstverbindung. Wählen Sie die SQL-Datenbank aus, um zum Fabric-Portal zu navigieren.
Suchen Sie im Fabric-Portal die Registerkarte "Sicherheit ", und wählen Sie "SQL-Sicherheit verwalten" aus.
Wählen Sie die Rolle db_ddladmin aus, und verwalten Sie dann den Zugriff.
Sie sollten den Namen Ihrer vom System zugewiesenen verwalteten Identität und/oder alle vom Benutzer zugewiesenen verwalteten Identitäten mit einer Dienstverbindung zu dieser SQL-Datenbank in Fabric sehen. Wählen Sie "Datenbank freigeben" aus. Wenn die Option " Datenbank freigeben " nicht angezeigt wird, müssen Sie nicht mit den verbleibenden Schritten fortfahren.
Geben Sie den Namen Ihrer neu erstellten vom System zugewiesenen verwalteten Identität und/oder alle vom Benutzer zugewiesenen verwalteten Identitäten ein, und wählen Sie ihn aus, wie sie im Bereich "Zugriff verwalten " angezeigt werden. Fügen Sie alle anderen Identitäten nach Bedarf hinzu. Aktivieren Sie das Kontrollkästchen Alle Daten mit SQL-Datenbank lesen, und wählen Sie dann Zuweisen aus.
Sie können jetzt Ihre neue Dienstverbindung mit der SQL-Datenbank in Fabric verwenden.
Nächster Schritt
Weitere Informationen zu Service Connector finden Sie im folgenden Artikel.