Targets
SQL database in Fabric
Replicate into a SQL database in Microsoft Fabric, connect with Microsoft Entra, and learn what Fabric doesn't support.
SQL Flow applies changes to a SQL database in Microsoft Fabric through its SQL endpoint, with the same transactional, exactly-once writes as the SQL Server and Azure SQL targets. In the wizard's target catalog it is called Fabric SQL database. It is a target only: Fabric offers no change data capture on it.
This isn't Fabric Open Mirroring, which lands files in a mirrored database's landing zone.
Requirements
| Requirement | Details |
|---|---|
| Server | The database's own server name, ending in .database.fabric.microsoft.com. Copy it from the database's Settings → Connection strings in the Fabric portal. |
| Database | The database name as the connection string shows it: the name, a hyphen and the database's unique ID, for example orders-00000000-0000-0000-0000-000000000000. |
| Authentication | Microsoft Entra ID only: a service principal with a client secret or a certificate (the default), a managed identity, a workload identity, integrated sign-in, or an Entra password. Fabric has no SQL logins and no Windows authentication. |
| Service principal | The Fabric tenant setting Service principals can use Fabric APIs is on, and the principal has access to the database. |
| Tables | Each target table has a primary key or a unique constraint that matches the source key. Prepare target schema creates missing tables and keys for you. |
| Network | The apply agent reaches the server on port 1433. The connection is always encrypted, with the server certificate validated; there is no Encryption setting. |
A paused database resumes on the first connection, so SQL Flow waits at least 60 seconds for a connection to a Fabric SQL database.
Permissions
The identity needs the same permissions in the database as on SQL Server: CREATE SCHEMA, CREATE TABLE and CREATE TYPE for the bookkeeping schema, read and write access to the target tables, ALTER on the target schemas to create tables and apply column changes, and VIEW DEFINITION on the database. Membership in db_owner covers all of them.
Create the user for a service principal or managed identity from the external provider. Replace <identity_name>, and repeat the last statement for each schema that holds target tables:
CREATE USER [<identity_name>] FROM EXTERNAL PROVIDER;
GRANT CREATE SCHEMA, CREATE TABLE, CREATE TYPE TO [<identity_name>];
GRANT VIEW DEFINITION TO [<identity_name>];
GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON SCHEMA::[dbo] TO [<identity_name>];What SQL Flow creates on the target
The objects are the same as on SQL Server, with two differences:
- On an existing table without a matching key, Prepare target schema adds a
UNIQUEconstraint nameduq_<table>_<columns>, not a primary key. - The
CREATE TABLEstatements carry comments that say how Fabric will mirror each table to OneLake.
Options
| Field on the Target step | Option key | Default |
|---|---|---|
| Authentication | authentication: entraServicePrincipal, entraServicePrincipalCertificate, entraManagedIdentity, entraWorkloadIdentity, entraIntegrated or entraPassword | Microsoft Entra service principal |
| Bookkeeping schema | sqlServerMetadataSchema | sqlflow |
| Collapse row versions (faster) | applyMode (optimized or ordered) | optimized |
| Maximum records per transaction | maxBufferedTransactionRecords | 1,000,000 |
| Maximum transaction size (MiB) | maxBufferedTransactionBytes | 512 MiB |
- Microsoft Entra service principal takes the Client ID and Client secret.
- Microsoft Entra managed identity takes an optional Client ID (user-assigned identity); leave it blank for the system-assigned identity of the Azure resource the agent runs on.
- Microsoft Entra password is deprecated by Microsoft and refused for accounts that require MFA.
Limitations
The connection form lists these limits, which come from Fabric:
- Microsoft Entra authentication only: Fabric has no SQL logins and no Windows authentication.
- Target only: Fabric SQL database has no change data capture, so it can't be a replication source.
- No in-memory (memory-optimized) tables or table types, and no ledger or Always Encrypted tables.
- Column names can't contain a space or any of
,;{}()=, a tab or a newline. - A primary key can't be of type
hierarchyid,sql_variantortimestamp. - No bidirectional replication into Fabric.
- Every table is mirrored to OneLake automatically.
xml,text,ntext,image,geography,geometry,hierarchyid,sql_variantandrowversioncolumns are stored but not mirrored, and a table with ajsonorvectorcolumn, or adatetime2(7),datetimeoffset(7)ortime(7)primary key, isn't mirrored at all.
Column types follow the SQL Server target, with one difference: a sql_variant column is refused on the Prepare step from every capture mode, because only SQL Server and Azure SQL targets receive each value with its base type. See Data type mapping.
Adaptive resource governance isn't available for Fabric SQL database targets.
The connection test refuses an endpoint that isn't a SQL database in Fabric. For a SQL analytics endpoint or Warehouse:
This endpoint is a Fabric SQL analytics endpoint or Warehouse (engine edition 11), which is read-only for SQL Flow's apply. Connect to the SQL database's own server name, ending in '.database.fabric.microsoft.com'.For an Azure SQL database:
This endpoint is an Azure SQL Database (engine edition 5), not a SQL database in Fabric. Choose the Azure SQL target for it.