На этой странице показаны поддерживаемые методы проверки подлинности и клиенты, а также показан пример кода, который можно использовать для подключения приложений к базе данных SQL в Microsoft Fabric с помощью соединителя службы. На этой странице также отображаются имена и значения переменных среды по умолчанию, которые вы получаете при создании подключения к службе.
Поддерживаемые службы вычислений
Соединитель служб можно использовать для подключения следующих вычислительных служб к базе данных SQL в Fabric:
- Служба приложений Azure
- Приложения контейнеров Azure
- Функции Azure
- Служба Azure Kubernetes (AKS)
Поддерживаемые типы проверки подлинности и типы клиентов
В следующей таблице показано, какие сочетания методов проверки подлинности и клиентов поддерживаются для подключения вычислительной службы к базе данных SQL в Fabric с помощью соединителя службы. Значение "Да" указывает, что сочетание поддерживается, а значение "Нет" указывает, что оно не поддерживается.
| Тип клиента |
Назначаемый системой управляемый идентификатор |
Управляемая идентификация, назначаемая пользователем |
Секретный ключ/строка подключения |
Принципал службы |
| .СЕТЬ |
Да |
Да |
нет |
нет |
| Иди |
Да |
Да |
нет |
нет |
| Ява |
Да |
Да |
нет |
нет |
| Java — Spring Boot |
Да |
Да |
нет |
нет |
| Питон |
Да |
Да |
нет |
нет |
| Отсутствует |
Да |
Да |
нет |
нет |
Эта таблица указывает, что согласно поведению системы, разрешена только аутентификация с помощью управляемых удостоверений.
Методы управляемого удостоверения, назначаемые системой, и управляемого удостоверения, назначаемые пользователем, поддерживаются для клиентских типов .NET, Java, Java, Spring Boot, Python, Go и None. Эти методы не поддерживаются для других типов.
Имена переменных среды по умолчанию или свойства приложения и пример кода
Для подключения вычислительных служб к базе данных SQL в Fabric используйте сведения о подключении и пример кода, представленные на следующих вкладках. Для получения дополнительной информации о правилах именования см. статью о внутренностях соединителя служб.
Замечание
Хотя база данных SQL в Fabric отличается от базы данных SQL Azure, вы можете подключиться к базе данных SQL и запросить ее в Fabric так же, как и база данных SQL Azure.
Подробнее.
Назначаемый системой управляемый идентификатор
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
FABRIC_SQL_CONNECTIONSTRING |
Строка подключения к базе данных Azure SQL |
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 |
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 |
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 |
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 |
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 |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;fedauth=ActiveDirectoryManagedIdentity; |
Пример кода
Ниже приведены шаги и фрагменты кода для подключения к базе данных SQL в Fabric с помощью управляемого удостоверения, назначаемого системой.
Установите зависимости.
dotnet add package Microsoft.Data.SqlClient
Получите базу данных SQL в строке подключения Microsoft Fabric из переменной среды, добавленной соединителем службы.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("FABRIC_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Дополнительные сведения см. в разделе "Использование проверки подлинности управляемого удостоверения Active Directory".
Добавьте следующие зависимости в файл 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>
Получите базу данных SQL в строке подключения Microsoft Fabric из переменной среды, добавленной соединителем службы.
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();
}
}
}
Дополнительные сведения см. в статье "Подключение к базам данных Azure из службы приложений без секретов с помощью управляемого удостоверения".
Если вы создаете подключение с опцией --client-type springboot, соединитель службы задает переменную среды 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.
Для управляемых удостоверений, назначаемых пользователем, msiClientId=<msiClientId>; добавляется.
Обновите приложение, следуя руководству по миграции приложения Java для использования безпарольных подключений с базой данных Azure SQL. Не забудьте удалить spring.datasource.password свойство конфигурации, если оно было задано ранее и добавьте правильные зависимости.
spring:
datasource:
url: ${FABRIC_SQL_CONNECTIONSTRING}
Установите зависимости.
python -m pip install pyodbc
Получите базу данных SQL в строке подключения Microsoft Fabric из переменной среды, добавленной соединителем службы. Если вы используете Azure Container Apps в качестве сервиса вычислений или строка подключения в фрагменте кода не работает, ознакомьтесь с "Миграция Python-приложения для использования подключений без пароля к базе данных SQL Azure для подключения к базе данных SQL в Microsoft Fabric с помощью подключений без пароля".
Authentication=ActiveDirectoryMSI; требуется в строке подключения при подключении с помощью управляемых удостоверений.
UID=<msiClientId> также требуется в строке подключения при подключении с помощью управляемого удостоверения, назначаемого пользователем.
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
- Получите базу данных SQL в строке подключения Microsoft Fabric из переменной среды, добавленной соединителем службы.
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" для запроса базы данных в Базе данных SQL Azure.
Дополнительные сведения см. в разделе "Подключение к базе данных SQL" в Microsoft Fabric.
Управляемое удостоверение, назначаемое пользователем
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
FABRIC_SQL_CONNECTIONSTRING |
Строка подключения к базе данных Azure SQL |
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 |
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 |
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 |
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 |
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 |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;user id=<msiClientId>;fedauth=ActiveDirectoryManagedIdentity; |
Пример кода
Ниже приведены шаги и фрагменты кода для подключения к базе данных SQL в Fabric с помощью управляемого удостоверения, назначаемого пользователем.
Установите зависимости.
dotnet add package Microsoft.Data.SqlClient
Получите базу данных SQL в строке подключения Microsoft Fabric из переменной среды, добавленной соединителем службы.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("FABRIC_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Дополнительные сведения см. в разделе "Использование проверки подлинности управляемого удостоверения Active Directory".
Добавьте следующие зависимости в файл 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>
Получите базу данных SQL в строке подключения Microsoft Fabric из переменной среды, добавленной соединителем службы.
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();
}
}
}
Дополнительные сведения см. в статье "Подключение к базам данных Azure из службы приложений без секретов с помощью управляемого удостоверения".
Если вы создаете подключение с опцией --client-type springboot, соединитель службы задает переменную среды 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.
Для управляемых удостоверений, назначаемых пользователем, msiClientId=<msiClientId>; добавляется.
Обновите приложение, следуя руководству по миграции приложения Java для использования безпарольных подключений с базой данных Azure SQL. Не забудьте удалить spring.datasource.password свойство конфигурации, если оно было задано ранее и добавьте правильные зависимости.
spring:
datasource:
url: ${FABRIC_SQL_CONNECTIONSTRING}
Установите зависимости.
python -m pip install pyodbc
Получите базу данных SQL в строке подключения Microsoft Fabric из переменной среды, добавленной соединителем службы. Если вы используете Azure Container Apps в качестве сервиса вычислений или строка подключения в фрагменте кода не работает, ознакомьтесь с "Миграция Python-приложения для использования подключений без пароля к базе данных SQL Azure для подключения к базе данных SQL в Microsoft Fabric с помощью подключений без пароля".
Authentication=ActiveDirectoryMSI; требуется в строке подключения при подключении с помощью управляемых удостоверений.
UID=<msiClientId> также требуется в строке подключения при подключении с помощью управляемого удостоверения, назначаемого пользователем.
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
- Получите базу данных SQL в строке подключения Microsoft Fabric из переменной среды, добавленной соединителем службы.
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" для запроса базы данных в Базе данных SQL Azure.
Дополнительные сведения см. в разделе "Подключение к базе данных SQL" в Microsoft Fabric.
Общий доступ к базе данных SQL в Fabric
Завершите создание подключения к службе в Cloud Shell или локальном интерфейсе командной строки Azure.
После создания подключения откройте ресурс службы вычислений на портале Azure, откройте меню соединителя служб и найдите базу данных SQL в подключении к службе Fabric. Выберите базу данных SQL , чтобы перейти на портал Fabric.
На портале Fabric найдите вкладку "Безопасность" и выберите "Управление безопасностью SQL".
Выберите роль db_ddladmin, а затем управление доступом.
Вы должны увидеть имя управляемой идентичности, назначенной системой, и/или любой управляемой идентичности, назначаемой пользователем, с подключением сервиса к этой базе данных SQL в Fabric. Выберите базу данных Share. Если вы не видите параметр Share database, вам не нужно следовать остальным шагам.
Введите и выберите имя созданного управляемого удостоверения, назначаемого системой, и (или) все назначаемые пользователем управляемые удостоверения, как они отображаются на панели управления доступом . Добавьте любые другие идентичности по мере необходимости. Установите флажок "Чтение всех данных" с помощью базы данных SQL , а затем нажмите кнопку "Предоставить".
Теперь вы готовы использовать новое подключение службы к базе данных SQL в Fabric.
Следующий шаг
Чтобы узнать больше о служебном модуле подключения, обратитесь к следующей статье.