An Azure service that provides an enterprise-grade analytics engine.
Visual Studio’s Power Query-based data source UI for Azure Analysis Services does not support entering Microsoft Entra service principal credentials directly. It always prompts for an interactive identity (SQL login or Entra user), which is why the SQL login dialog appears at deploy time even after editing model.bim.
To use a service principal for Azure Analysis Services to connect to a Synapse dedicated SQL pool, configure the service principal and connection outside of the Visual Studio credential dialog and use the supported service principal syntax:
- Ensure the service principal is correctly provisioned in Synapse
- In the dedicated SQL pool, create the Entra user for the service principal and grant permissions, as already done:
CREATE USER [sp-aas-admin] FROM EXTERNAL PROVIDER; GRANT SELECT TO [sp-aas-admin]; EXEC sp_addrolemember N'db_datareader', N'sp-aas-admin'; - This aligns with the documented pattern of using Microsoft Entra identities (including service principals) for Synapse SQL authentication.
- In the dedicated SQL pool, create the Entra user for the service principal and grant permissions, as already done:
- Ensure the service principal is correctly configured in Azure Analysis Services
- Add the service principal as a server administrator using the required format:
-
app:{service-principal-client-id}@{azure-ad-tenant-id}
-
- This must be done at server deployment or via ARM/PowerShell. The documentation explicitly requires this format for service principals in the server admin role.
- Add the service principal as a server administrator using the required format:
- Use service principal syntax in the Analysis Services connection string
- For client libraries and tools that support it (AMO/ADOMD and compatible modules), service principals are passed in connection strings using:
-
app:AppIDplus password, or -
cert:thumbprintfor certificate-based auth.
-
- For example, when using AMO/ADOMD or PowerShell automation against Azure Analysis Services, the connection string uses
app:AppIDrather than a UPN. - Visual Studio’s Power Query UI does not expose this directly; instead, configure and deploy the model, then manage or automate processing/operations using a service principal-aware client (e.g., PowerShell or a custom app) that uses the
app:AppIDsyntax.
- For client libraries and tools that support it (AMO/ADOMD and compatible modules), service principals are passed in connection strings using:
- Accept the limitation of the Visual Studio designer
- The Visual Studio 2026 designer cannot be forced to store and use the service principal credentials for the data source at design time. The credential prompt at deployment is by design for that UI.
- The supported pattern is:
- Use Visual Studio to design the model and structure the data source.
- Use service principal-based connections for runtime/automation (processing, refresh, operations) via tools/libraries that support
app:AppIDin connection strings.
- Implement schema and row-level security
- Once the service principal is correctly configured as an admin and the model is deployed, define roles in the Azure Analysis Services model for schema and row-level security.
- Grant users/groups to those roles; the service principal itself typically remains an admin/automation identity, not a constrained RLS identity.
Managed identities are not supported for Azure Analysis Services, so the approach must use a regular service principal as described.
References:
- Add a service principal to the server administrator role
- Automation with service principals
- Secure a dedicated SQL pool (formerly SQL DW) in Azure Synapse Analytics
- Authenticate to dedicated SQL pool (formerly SQL DW) in Azure Synapse Analytics
- Copy and transform data in Azure Synapse Analytics by using Azure Data Factory or Synapse pipelines