An Azure service that provides an enterprise-grade analytics engine.
Hi JayZee64,
it sounds like you’ve done the bulk of the SPN setup (AAD user in the dedicated SQL pool, SPN as server-admin and full-control in AAS) but you’re still being forced into a Basic (SQL user) prompt in VS because the Tabular Model tooling isn’t picking up your SPN credential as a “Service Account” connection. Here’s a recipe that’s worked for me:
Generate and store your SPN secret
- In Azure AD, open your registered app (sp-aas-admin) and create a new client secret. Copy that value somewhere safe.
Edit your model.bim to use the SPN as a service account In the node of your .bim, locate your Azure Synapse SQL pool connection and set: • ImpersonationMode = “ServiceAccount” • CredentialUserName = “app:@” • CredentialPassword = “”
For example:
"DataSources": [
{
"Name": "DedicatedSqlPool",
"ConnectionString": "Provider=MSOLAP;Data Source=asazure://<region>.asazure.windows.net/<server>;Initial Catalog=<database>;",
"ImpersonationMode": "ServiceAccount",
"CredentialUserName": "app:******@yourTenant.onmicrosoft.com",
"CredentialPassword": "XXXXXXXXXXXXXXXXXXXX"
}
]
Deploy via Tabular Model SQL Server Database Project (SSDT) or Tabular Editor
- Open the .bim in Tabular Editor (free edition works).
- Expand Model → Data Sources → click your Synapse source.
- In Properties, verify Impersonation is ServiceAccount and that the two credential fields are populated.
- Save and deploy. You should no longer see an interactive prompt.
Alternative: use PowerShell or TMSL for unattended SPN deployment If VS still forces a prompt, bypass SSDT and script the deploy. For example with PowerShell:
```powershell
Connect-AzAccount -ServicePrincipal `
-ApplicationId $appId -TenantId $tenantId
-Credential (New-Object pscredential $appId, (ConvertTo-SecureString $secret -AsPlainText -Force))
Invoke-ProcessDatabase -Server "asazure://<region>.asazure.windows.net/yourAASserver"
-Database "YourModel" -ModelFile "path\to\model.bim"
-ServicePrincipal -ApplicationId $appId
-TenantId $tenantId `
-Credential $Credential
```
After deployment, you can layer your Synapse role-based and row-level security within the tabular model by creating roles in Tabular Editor or SSDT as usual.
Hope that helps you wire up a true SPN connection without the basic-SQL prompt. Let me know if you hit any errors, and share:
• Which version of the Analysis Services tools you have installed in VS 2026 • Whether you’ve set ImpersonationMode to ServiceAccount in the .bim • If you see any JSON validation or deployment errors when you save/deploy
—Reference documentation—
- Add SPN to Azure Analysis Services admin role https://learn.microsoft.com/azure/analysis-services/analysis-services-addservprinc-admins
- Sign in via SPN to AAS (connection string syntax) https://learn.microsoft.com/azure/analysis-services/analysis-services-service-principal
- Dedicated SQL Pool AAD user creation & permissions https://learn.microsoft.com/azure/synapse-analytics/sql-data-warehouse/sql-data-warehouse-overview-manage-security
- PowerShell deploy with ServicePrincipal flag (Az.AnalysisServices / SqlServer module) https://learn.microsoft.com/azure/analysis-services/analysis-services-service-principal