En esta página se muestran los métodos de autenticación y los clientes compatibles, y se muestra el código de ejemplo que puede usar para conectar las aplicaciones a la base de datos SQL en Microsoft Fabric mediante Service Connector. Esta página también muestra los nombres y valores predeterminados de las variables de entorno que se obtiene al crear la conexión de servicio.
Servicios de proceso admitidos
El conector de servicio se puede usar para conectar los siguientes servicios de proceso a la base de datos SQL en Fabric:
- Azure App Service
- Azure Container Apps (Aplicaciones de Contenedores de Azure)
- Funciones de Azure
- Azure Kubernetes Service (AKS)
Tipos de autenticación y tipos de cliente admitidos
En la tabla siguiente se muestran las combinaciones de métodos de autenticación y clientes que se admiten para conectar el servicio de proceso a la base de datos SQL en Fabric mediante Service Connector. Un "Sí" indica que la combinación es compatible, mientras que un "No" indica que no es compatible.
| Tipo de cliente |
Identidad administrada asignada por el sistema |
Identidad administrada asignada por el usuario |
Secreto/cadena de conexión |
Principal de servicio |
| .RED |
Sí |
Sí |
No |
No |
| Ir |
Sí |
Sí |
No |
No |
| Java |
Sí |
Sí |
No |
No |
| Java: Spring Boot |
Sí |
Sí |
No |
No |
| Pitón |
Sí |
Sí |
No |
No |
| Ninguno |
Sí |
Sí |
No |
No |
Esta tabla indica que, según el comportamiento de Fabric, solo se permite la autenticación a través de identidades administradas.
Los métodos de identidad administrada asignada por el sistema e identidad administrada asignada por el usuario son compatibles con los tipos de cliente .NET, Java, Java - Spring Boot, Python, Go y None. Estos métodos no son compatibles con ningún otro tipo.
Nombres de variables de entorno predeterminados o propiedades de aplicación y código de ejemplo
Consulte los detalles de conexión y el código de ejemplo que se presentan en las siguientes pestañas para conectar los servicios de proceso a la base de datos SQL en Fabric. Para más información sobre las convenciones de nomenclatura, consulte el artículo Sobre los elementos internos de Service Connector .
Nota:
Aunque la base de datos SQL de Fabric es distinta de Azure SQL Database, puede conectarse a la base de datos SQL de Fabric y consultarla de la misma manera que Azure SQL Database.
Más información.
Identidad administrada asignada por el sistema
| Nombre de la variable de entorno predeterminado |
Descripción |
Ejemplo de valor |
FABRIC_SQL_CONNECTIONSTRING |
Cadena de conexión de 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 |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
FABRIC_SQL_CONNECTIONSTRING |
Cadena de conexión de Azure SQL Database |
jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
FABRIC_SQL_CONNECTIONSTRING |
Cadena de conexión de Azure SQL Database |
jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Ejemplo de valor |
FABRIC_SQL_CONNECTIONSTRING |
Cadena de conexión de 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; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Ejemplo de valor |
FABRIC_SQL_CONNECTIONSTRING |
Cadena de conexión de Azure SQL Database |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;fedauth=ActiveDirectoryManagedIdentity; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Ejemplo de valor |
FABRIC_SQL_CONNECTIONSTRING |
Cadena de conexión de Azure SQL Database |
server=tcp:<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com;port=1433;database=<SQL-DB-name>-<Fabric-DB-Identifier>;fedauth=ActiveDirectoryManagedIdentity; |
Código de ejemplo
A continuación se describen los pasos y fragmentos de código para conectarse a la base de datos SQL en Fabric mediante una identidad administrada asignada por el sistema.
Instale las dependencias.
dotnet add package Microsoft.Data.SqlClient
Obtenga la cadena de conexión de la Base de datos SQL de Microsoft Fabric de la variable de entorno agregada por Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("FABRIC_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Para obtener más información, consulte Uso de la autenticación de identidad administrada de Active Directory.
Agregue las siguientes dependencias al archivo 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>
Obtenga la cadena de conexión de la Base de datos SQL de Microsoft Fabric de la variable de entorno agregada por 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();
}
}
}
Para más información, consulte Conexión a bases de datos de Azure desde App Service sin secretos mediante una identidad administrada.
Para una aplicación Spring, si crea una conexión con la opción --client-type springboot, Service Connector establece la variable de entorno FABRIC_SQL_CONNECTIONSTRING con el valor en formato jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; en Azure Spring Apps.
Para las identidades administradas asignadas por el usuario, msiClientId=<msiClientId>; se agrega.
Actualice la aplicación siguiendo el tutorial Migración de una aplicación Java para usar conexiones sin contraseña con Azure SQL Database. Recuerde quitar la spring.datasource.password propiedad de configuración si se estableció anteriormente y agregar las dependencias correctas.
spring:
datasource:
url: ${FABRIC_SQL_CONNECTIONSTRING}
Instale las dependencias.
python -m pip install pyodbc
Obtenga la cadena de conexión de la Base de datos SQL de Microsoft Fabric de la variable de entorno agregada por Service Connector. Si usa Azure Container Apps como servicio de proceso o la cadena de conexión del fragmento de código no funciona, consulte Migración de una aplicación de Python para usar conexiones sin contraseña con Azure SQL Database para conectarse a SQL Database en Microsoft Fabric mediante credenciales sin contraseña.
Authentication=ActiveDirectoryMSI; se requiere en la cadena de conexión al conectarse mediante identidades administradas.
UID=<msiClientId> también se requiere en la cadena de conexión al conectarse mediante una identidad administrada asignada por el usuario.
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)
- Instale las dependencias.
go mod init <YourProjectName>
go mod tidy
- Obtenga la cadena de conexión de la Base de datos SQL de Microsoft Fabric de la variable de entorno agregada por 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")
}
Para más información, consulte Uso de Golang para consultar una base de datos en Azure SQL Database.
Para obtener más información, consulte Conexión a la base de datos SQL en Microsoft Fabric.
Identidad administrada asignada por el usuario
| Nombre de la variable de entorno predeterminado |
Descripción |
Ejemplo de valor |
FABRIC_SQL_CONNECTIONSTRING |
Cadena de conexión de 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 |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
FABRIC_SQL_CONNECTIONSTRING |
Cadena de conexión de 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; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
FABRIC_SQL_CONNECTIONSTRING |
Cadena de conexión de 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; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Ejemplo de valor |
FABRIC_SQL_CONNECTIONSTRING |
Cadena de conexión de 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; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Ejemplo de valor |
FABRIC_SQL_CONNECTIONSTRING |
Cadena de conexión de 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; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Ejemplo de valor |
FABRIC_SQL_CONNECTIONSTRING |
Cadena de conexión de 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; |
Código de ejemplo
A continuación se describen los pasos y fragmentos de código para conectarse a la base de datos SQL en Fabric mediante una identidad administrada asignada por el usuario.
Instale las dependencias.
dotnet add package Microsoft.Data.SqlClient
Obtenga la cadena de conexión de la Base de datos SQL de Microsoft Fabric de la variable de entorno agregada por Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("FABRIC_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Para obtener más información, consulte Uso de la autenticación de identidad administrada de Active Directory.
Agregue las siguientes dependencias al archivo 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>
Obtenga la cadena de conexión de la Base de datos SQL de Microsoft Fabric de la variable de entorno agregada por 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();
}
}
}
Para más información, consulte Conexión a bases de datos de Azure desde App Service sin secretos mediante una identidad administrada.
Para una aplicación Spring, si crea una conexión con la opción --client-type springboot, Service Connector establece la variable de entorno FABRIC_SQL_CONNECTIONSTRING con el valor en formato jdbc:sqlserver://<Fabric-SQL-Identifier>.msit-database.fabric.microsoft.com,1433;databaseName=<SQL-DB-name>-<Fabric-DB-Identifier>;authentication=ActiveDirectoryMSI; en Azure Spring Apps.
Para las identidades administradas asignadas por el usuario, msiClientId=<msiClientId>; se agrega.
Actualice la aplicación siguiendo el tutorial Migración de una aplicación Java para usar conexiones sin contraseña con Azure SQL Database. Recuerde quitar la spring.datasource.password propiedad de configuración si se estableció anteriormente y agregar las dependencias correctas.
spring:
datasource:
url: ${FABRIC_SQL_CONNECTIONSTRING}
Instale las dependencias.
python -m pip install pyodbc
Obtenga la cadena de conexión de la Base de datos SQL de Microsoft Fabric de la variable de entorno agregada por Service Connector. Si usa Azure Container Apps como servicio de proceso o la cadena de conexión del fragmento de código no funciona, consulte Migración de una aplicación de Python para usar conexiones sin contraseña con Azure SQL Database para conectarse a SQL Database en Microsoft Fabric mediante credenciales sin contraseña.
Authentication=ActiveDirectoryMSI; se requiere en la cadena de conexión al conectarse mediante identidades administradas.
UID=<msiClientId> también se requiere en la cadena de conexión al conectarse mediante una identidad administrada asignada por el usuario.
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)
- Instale las dependencias.
go mod init <YourProjectName>
go mod tidy
- Obtenga la cadena de conexión de la Base de datos SQL de Microsoft Fabric de la variable de entorno agregada por 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")
}
Para más información, consulte Uso de Golang para consultar una base de datos en Azure SQL Database.
Para obtener más información, consulte Conexión a la base de datos SQL en Microsoft Fabric.
Compartir el acceso a la base de datos SQL en Fabric
Complete la creación de la conexión de servicio en Cloud Shell o en la CLI de Azure local.
Una vez creada la conexión, abra el recurso de servicio de proceso en Azure Portal, abra el menú Conector de servicio y busque la base de datos SQL en la conexión de servicio de Fabric. Seleccione Base de datos SQL para navegar hasta el portal de Fabric.
En el portal de Fabric, busque la pestaña Seguridad y seleccione Administrar la seguridad de SQL.
Seleccione el rol db_ddladmin y, a continuación, Administrar acceso.
Debería ver el nombre de la identidad administrada asignada por el sistema o cualquier identidad administrada asignada por el usuario con una conexión de servicio a esta base de datos SQL en Fabric. Seleccione Compartir base de datos. Si no ve la opción Compartir base de datos , no es necesario que continúe con los pasos restantes.
Escriba y seleccione el nombre de la identidad administrada asignada por el sistema recién creada y/o cualquier identidad administrada asignada por el usuario tal como aparecen en el panel Administrar acceso . Agregue cualquier otra identidad según sea necesario. Active la casilla Leer todos los datos mediante SQL Database y, a continuación, seleccione Conceder.
Ahora está listo para usar su nueva conexión de servicio a la base de datos SQL en Fabric.
Paso siguiente
Consulte el siguiente artículo para obtener más información sobre Service Connector.