Na tej stronie przedstawiono obsługiwane metody uwierzytelniania i klientów oraz pokazano przykładowy kod, którego można użyć do łączenia aplikacji z bazą danych SQL w usłudze Microsoft Fabric przy użyciu łącznika usługi Service Connector. Ta strona zawiera również domyślne nazwy zmiennych środowiskowych i wartości uzyskiwane podczas tworzenia połączenia z usługą.
Obsługiwane usługi obliczeniowe
Łącznik usługi może służyć do łączenia następujących usług obliczeniowych z bazą danych SQL w sieci szkieletowej:
- Azure App Service
- Azure Container Apps (aplikacje kontenerowe Azure)
- Funkcje platformy Azure
- Azure Kubernetes Service (AKS)
Obsługiwane typy uwierzytelniania i typy klientów
W poniższej tabeli pokazano, które kombinacje metod uwierzytelniania i klientów są obsługiwane do łączenia usługi obliczeniowej z bazą danych SQL w sieci szkieletowej przy użyciu łącznika usługi Service Connector. Wartość "Tak" wskazuje, że kombinacja jest obsługiwana, a wartość "Nie" wskazuje, że nie jest obsługiwana.
| Typ klienta |
Zarządzana tożsamość przypisana przez system |
Tożsamość zarządzana przypisana użytkownikowi |
Tajny klucz/ciąg połączenia |
Jednostka usługi |
| .SIEĆ |
Tak |
Tak |
Nie. |
Nie. |
| Idź |
Tak |
Tak |
Nie. |
Nie. |
| Jawa |
Tak |
Tak |
Nie. |
Nie. |
| Java — Spring Boot |
Tak |
Tak |
Nie. |
Nie. |
| Pyton |
Tak |
Tak |
Nie. |
Nie. |
| Żaden |
Tak |
Tak |
Nie. |
Nie. |
Ta tabela wskazuje, że zgodnie z zachowaniem sieci szkieletowej dozwolone jest tylko uwierzytelnianie za pośrednictwem tożsamości zarządzanych.
Przypisane przez system metody tożsamości zarządzanej i tożsamości zarządzanej przypisanej przez użytkownika są obsługiwane w przypadku typów klientów .NET, Java, Java — Spring Boot, Python, Go i None. Te metody nie są obsługiwane dla żadnych innych typów.
Domyślne nazwy zmiennych środowiskowych lub właściwości aplikacji i przykładowy kod
Zapoznaj się ze szczegółami połączenia i przykładowym kodem przedstawionym na poniższych kartach, aby połączyć usługi obliczeniowe z bazą danych SQL w sieci szkieletowej. Aby uzyskać więcej informacji na temat konwencji nazewnictwa, zapoznaj się z artykułem Dotyczącym wewnętrznych łączników usług .
Uwaga / Notatka
Mimo że baza danych SQL w usłudze Fabric różni się od usługi Azure SQL Database, możesz nawiązać połączenie z bazą danych SQL i wykonywać zapytania względem bazy danych SQL w usłudze Fabric w taki sam sposób, jak usługa Azure SQL Database.
Dowiedz się więcej.
Zarządzana tożsamość przypisana przez system
| Domyślna nazwa zmiennej środowiskowej |
Opis |
Przykładowa wartość |
FABRIC_SQL_CONNECTIONSTRING |
Parametry połączenia usługi 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 |
| Domyślna nazwa zmiennej środowiskowej |
Opis |
Przykładowa wartość |
FABRIC_SQL_CONNECTIONSTRING |
Parametry połączenia usługi Azure SQL Database |
jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; |
| Domyślna nazwa zmiennej środowiskowej |
Opis |
Przykładowa wartość |
FABRIC_SQL_CONNECTIONSTRING |
Parametry połączenia usługi Azure SQL Database |
jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; |
| Domyślna nazwa zmiennej środowiskowej |
Opis |
Przykładowa wartość |
FABRIC_SQL_CONNECTIONSTRING |
Parametry połączenia usługi 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; |
| Domyślna nazwa zmiennej środowiskowej |
Opis |
Przykładowa wartość |
FABRIC_SQL_CONNECTIONSTRING |
Parametry połączenia usługi Azure SQL Database |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;fedauth=ActiveDirectoryManagedIdentity; |
| Domyślna nazwa zmiennej środowiskowej |
Opis |
Przykładowa wartość |
FABRIC_SQL_CONNECTIONSTRING |
Parametry połączenia usługi Azure SQL Database |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;fedauth=ActiveDirectoryManagedIdentity; |
Przykładowy kod
Poniżej przedstawiono kroki i fragmenty kodu służące do nawiązywania połączenia z bazą danych SQL w usłudze Fabric przy użyciu tożsamości zarządzanej przypisanej przez system.
Instalowanie zależności.
dotnet add package Microsoft.Data.SqlClient
Pobierz ciąg połączenia do bazy danych SQL w Microsoft Fabric ze zmiennej środowiskowej dodanej przez łącznik usługi Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("FABRIC_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Aby uzyskać więcej informacji, zobacz Używanie uwierzytelniania tożsamości zarządzanej usługi Active Directory.
Dodaj następujące zależności w pliku 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>
Pobierz ciąg połączenia do bazy danych SQL w Microsoft Fabric ze zmiennej środowiskowej dodanej przez łącznik usługi Service Connector.
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();
}
}
}
Aby uzyskać więcej informacji, zobacz Nawiązywanie połączenia z bazami danych platformy Azure z usługi App Service bez wpisów tajnych przy użyciu tożsamości zarządzanej.
Dla aplikacji Spring, jeśli utworzysz połączenie z opcją --client-type springboot, Service Connector ustawia zmienną środowiskową FABRIC_SQL_CONNECTIONSTRING z formatem jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; wartości na Azure Spring Apps.
W przypadku zarządzanych tożsamości przypisanych przez użytkownika, msiClientId=<msiClientId>; jest dodawany.
Zaktualizuj aplikację zgodnie z samouczkiem Migrate a Java application to use passwordless connections with Azure SQL Database (Migrowanie aplikacji Java w celu używania połączeń bez hasła z usługą Azure SQL Database). Pamiętaj, aby usunąć spring.datasource.password właściwość konfiguracji, jeśli została wcześniej ustawiona i dodać poprawne zależności.
spring:
datasource:
url: ${FABRIC_SQL_CONNECTIONSTRING}
Instalowanie zależności.
python -m pip install pyodbc
Pobierz ciąg połączenia do bazy danych SQL w Microsoft Fabric ze zmiennej środowiskowej dodanej przez łącznik usługi Service Connector. Jeśli używasz usługi Azure Container Apps jako usługi obliczeniowej lub parametry połączenia w fragmencie kodu nie działają, zapoznaj się z artykułem Migrowanie aplikacji języka Python w celu używania połączeń bez hasła z usługą Azure SQL Database w celu nawiązania połączenia z bazą danych SQL w usłudze Microsoft Fabric przy użyciu poświadczeń bez hasła.
Authentication=ActiveDirectoryMSI; jest wymagany w parametrach połączenia podczas nawiązywania połączenia przy użyciu tożsamości zarządzanych.
UID=<msiClientId> jest również wymagany w parametrach połączenia podczas nawiązywania połączenia przy użyciu tożsamości zarządzanej przypisanej przez użytkownika.
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)
- Instalowanie zależności.
go mod init <YourProjectName>
go mod tidy
- Pobierz ciąg połączenia do bazy danych SQL w Microsoft Fabric ze zmiennej środowiskowej dodanej przez łącznik usługi Service Connector.
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")
}
Aby uzyskać więcej informacji, zobacz Używanie języka Golang do wykonywania zapytań dotyczących bazy danych w usłudze Azure SQL Database.
Aby uzyskać więcej informacji, zobacz Nawiązywanie połączenia z bazą danych SQL w usłudze Microsoft Fabric.
Tożsamość zarządzana przypisana przez użytkownika
| Domyślna nazwa zmiennej środowiskowej |
Opis |
Przykładowa wartość |
FABRIC_SQL_CONNECTIONSTRING |
Parametry połączenia usługi 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 |
| Domyślna nazwa zmiennej środowiskowej |
Opis |
Przykładowa wartość |
FABRIC_SQL_CONNECTIONSTRING |
Parametry połączenia usługi 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; |
| Domyślna nazwa zmiennej środowiskowej |
Opis |
Przykładowa wartość |
FABRIC_SQL_CONNECTIONSTRING |
Parametry połączenia usługi 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; |
| Domyślna nazwa zmiennej środowiskowej |
Opis |
Przykładowa wartość |
FABRIC_SQL_CONNECTIONSTRING |
Parametry połączenia usługi 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; |
| Domyślna nazwa zmiennej środowiskowej |
Opis |
Przykładowa wartość |
FABRIC_SQL_CONNECTIONSTRING |
Parametry połączenia usługi 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; |
| Domyślna nazwa zmiennej środowiskowej |
Opis |
Przykładowa wartość |
FABRIC_SQL_CONNECTIONSTRING |
Parametry połączenia usługi 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; |
Przykładowy kod
Poniżej przedstawiono kroki i fragmenty kodu służące do nawiązywania połączenia z bazą danych SQL w usłudze Fabric przy użyciu tożsamości zarządzanej przypisanej przez użytkownika.
Instalowanie zależności.
dotnet add package Microsoft.Data.SqlClient
Pobierz ciąg połączenia do bazy danych SQL w Microsoft Fabric ze zmiennej środowiskowej dodanej przez łącznik usługi Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("FABRIC_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Aby uzyskać więcej informacji, zobacz Używanie uwierzytelniania tożsamości zarządzanej usługi Active Directory.
Dodaj następujące zależności w pliku 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>
Pobierz ciąg połączenia do bazy danych SQL w Microsoft Fabric ze zmiennej środowiskowej dodanej przez łącznik usługi Service Connector.
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();
}
}
}
Aby uzyskać więcej informacji, zobacz Nawiązywanie połączenia z bazami danych platformy Azure z usługi App Service bez wpisów tajnych przy użyciu tożsamości zarządzanej.
Dla aplikacji Spring, jeśli utworzysz połączenie z opcją --client-type springboot, Service Connector ustawia zmienną środowiskową FABRIC_SQL_CONNECTIONSTRING z formatem jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; wartości na Azure Spring Apps.
W przypadku zarządzanych tożsamości przypisanych przez użytkownika, msiClientId=<msiClientId>; jest dodawany.
Zaktualizuj aplikację zgodnie z samouczkiem Migrate a Java application to use passwordless connections with Azure SQL Database (Migrowanie aplikacji Java w celu używania połączeń bez hasła z usługą Azure SQL Database). Pamiętaj, aby usunąć spring.datasource.password właściwość konfiguracji, jeśli została wcześniej ustawiona i dodać poprawne zależności.
spring:
datasource:
url: ${FABRIC_SQL_CONNECTIONSTRING}
Instalowanie zależności.
python -m pip install pyodbc
Pobierz ciąg połączenia do bazy danych SQL w Microsoft Fabric ze zmiennej środowiskowej dodanej przez łącznik usługi Service Connector. Jeśli używasz usługi Azure Container Apps jako usługi obliczeniowej lub parametry połączenia w fragmencie kodu nie działają, zapoznaj się z artykułem Migrowanie aplikacji języka Python w celu używania połączeń bez hasła z usługą Azure SQL Database w celu nawiązania połączenia z bazą danych SQL w usłudze Microsoft Fabric przy użyciu poświadczeń bez hasła.
Authentication=ActiveDirectoryMSI; jest wymagany w parametrach połączenia podczas nawiązywania połączenia przy użyciu tożsamości zarządzanych.
UID=<msiClientId> jest również wymagany w parametrach połączenia podczas nawiązywania połączenia przy użyciu tożsamości zarządzanej przypisanej przez użytkownika.
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)
- Instalowanie zależności.
go mod init <YourProjectName>
go mod tidy
- Pobierz ciąg połączenia do bazy danych SQL w Microsoft Fabric ze zmiennej środowiskowej dodanej przez łącznik usługi Service Connector.
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")
}
Aby uzyskać więcej informacji, zobacz Używanie języka Golang do wykonywania zapytań dotyczących bazy danych w usłudze Azure SQL Database.
Aby uzyskać więcej informacji, zobacz Nawiązywanie połączenia z bazą danych SQL w usłudze Microsoft Fabric.
Udostępnianie dostępu do bazy danych SQL w usłudze Fabric
Ukończ tworzenie połączenia z usługą w Cloud Shell lub na lokalnym Azure CLI.
Po utworzeniu połączenia otwórz zasób Twojej usługi obliczeniowej w portalu Azure, otwórz menu Łącznika usług i znajdź swoją bazę danych SQL w połączeniu usługi Fabric. Wybierz Baza danych SQL, aby przejść do portalu Fabric.
W portalu sieci szkieletowej znajdź kartę Zabezpieczenia i wybierz pozycję Zarządzaj zabezpieczeniami SQL.
Wybierz rolę db_ddladmin, a następnie pozycję Zarządzaj dostępem.
Powinna być widoczna nazwa tożsamości zarządzanej przypisanej przez system i/lub dowolnych tożsamości zarządzanych przypisanych przez użytkownika z połączeniem usługi z tą bazą danych SQL w Fabric. Wybierz pozycję Udostępnij bazę danych. Jeśli nie widzisz opcji Udostępnij bazę danych , nie musisz kontynuować wykonywania pozostałych kroków.
Wprowadź i wybierz nazwę nowo utworzonej tożsamości zarządzanej przypisanej przez system i/lub dowolne tożsamości zarządzane przypisane przez użytkownika, które są wyświetlane w okienku Zarządzanie dostępem . Dodaj wszelkie inne tożsamości w razie potrzeby. Zaznacz pole wyboru Odczytaj wszystkie dane przy użyciu bazy danych SQL , a następnie wybierz pozycję Udziel.
Teraz możesz użyć nowego łącza do bazy danych SQL w usłudze Fabric.
Następny krok
Zapoznaj się z następującym artykułem, aby dowiedzieć się więcej o Service Connector.