Quickstart: Create an Azure Synapse Analytics dedicated SQL pool (formerly SQL DW) using Bicep
This Bicep file will create a dedicated SQL pool (formerly SQL DW) with Transparent Data Encryption enabled. Dedicated SQL pool (formerly SQL DW) refers to the enterprise data warehousing features that are generally available in Azure Synapse.
Bicep is a domain-specific language (DSL) that uses declarative syntax to deploy Azure resources. It provides concise syntax, reliable type safety, and support for code reuse. Bicep offers the best authoring experience for your infrastructure-as-code solutions in Azure.
Prerequisites
If you don't have an Azure subscription, create a free account before you begin.
Review the Bicep file
The Bicep file used in this quickstart is from Azure Quickstart Templates.
@description('The SQL Logical Server name.')
param sqlServerName string = 'sql${uniqueString(resourceGroup().id)}'
@description('The administrator username of the SQL Server.')
param sqlAdministratorLogin string
@description('The administrator password of the SQL Server.')
@secure()
param sqlAdministratorPassword string
@description('The name of the Database.')
param databasesName string
@description('Enable/Disable Transparent Data Encryption')
@allowed([
'Enabled'
'Disabled'
])
param transparentDataEncryption string = 'Enabled'
@description('DW Performance Level expressed in DTU (i.e. 900 DTU = DW100c)')
@minValue(900)
@maxValue(54000)
param capacity int
@description('The SQL Database collation.')
param databaseCollation string = 'SQL_Latin1_General_CP1_CI_AS'
@description('Resource location')
param location string = resourceGroup().location
resource sqlServer 'Microsoft.Sql/servers@2023-08-01-preview' = {
name: sqlServerName
location: location
properties: {
administratorLogin: sqlAdministratorLogin
administratorLoginPassword: sqlAdministratorPassword
version: '12.0'
publicNetworkAccess: 'Enabled'
minimalTlsVersion: '1.2'
restrictOutboundNetworkAccess: 'Disabled'
}
}
resource sqlServerDatabase 'Microsoft.Sql/servers/databases@2023-08-01-preview' = {
parent: sqlServer
name: databasesName
location: location
sku: {
name: 'DataWarehouse'
tier: 'DataWarehouse'
capacity: capacity
}
properties: {
collation: databaseCollation
catalogCollation: databaseCollation
readScale: 'Disabled'
requestedBackupStorageRedundancy: 'Geo'
isLedgerOn: false
}
}
resource encryption 'Microsoft.Sql/servers/databases/transparentDataEncryption@2023-08-01-preview' = {
parent: sqlServerDatabase
name: 'current'
properties: {
state: transparentDataEncryption
}
}
resource securityAlertPolicy 'Microsoft.Sql/servers/securityAlertPolicies@2023-08-01-preview' = {
parent: sqlServer
name: 'default'
properties: {
state: 'Enabled'
}
}
resource auditingSetting 'Microsoft.Sql/servers/auditingSettings@2023-08-01-preview' = {
parent: sqlServer
name: 'default'
properties: {
isAzureMonitorTargetEnabled: true
state: 'Enabled'
retentionDays: 7
auditActionsAndGroups: [
'SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP'
'FAILED_DATABASE_AUTHENTICATION_GROUP'
'BATCH_COMPLETED_GROUP'
]
}
}
output location string = location
output name string = sqlServer.name
output resourceGroupName string = resourceGroup().name
output resourceId string = sqlServer.id
The Bicep file defines one resource:
Deploy the Bicep file
Save the Bicep file as
main.bicep
to your local computer.Deploy the Bicep file using either Azure CLI or Azure PowerShell.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters sqlAdministratorLogin=<admin-login> databasesName=<db-name> capacity=<int>
Note
Replace <admin-login> with the administrator login username for the SQL server. Replace <db-name> with the name of the database. Replace <int> with the DW performance level. The minimum value is 900 and the maximum value is 54000. You'll also be prompted to enter sqlAdministratorPassword.
When the deployment finishes, you should see a message indicating the deployment succeeded.
Review deployed resources
Use the Azure portal, Azure CLI, or Azure PowerShell to list the deployed resources in the resource group.
az resource list --resource-group exampleRG
Clean up resources
When no longer needed, use the Azure portal, Azure CLI, or Azure PowerShell to delete the resource group and its resources.
az group delete --name exampleRG
Next steps
In this quickstart, you created a dedicated SQL pool (formerly SQL DW) using Bicep and validated the deployment. To learn more about Azure Synapse Analytics and Bicep, see the articles below.
- Read an Overview of Azure Synapse Analytics
- Learn more about Bicep
- Quickstart: Create Bicep files with Visual Studio Code