param resourcesPrefix string param logAnalyticsWorkspaceName string param sqlServerAdminPassword string var location = resourceGroup().location var varfile = json(loadTextContent('./variables.json')) // https://docs.microsoft.com/en-us/azure/templates/microsoft.sql/servers?tabs=bicep resource sqlServer 'Microsoft.Sql/servers@2021-05-01-preview' = { name: '${resourcesPrefix}sql' location: location properties: { administratorLogin: varfile.sqlServerAdminLogin administratorLoginPassword: sqlServerAdminPassword minimalTlsVersion: '1.2' version: '12.0' } } resource sqlFirewallRuleAzure 'Microsoft.Sql/servers/firewallRules@2021-05-01-preview' = { parent: sqlServer name: 'AzureAccess' properties: { endIpAddress: '0.0.0.0' startIpAddress: '0.0.0.0' } } // https://docs.microsoft.com/en-us/azure/templates/microsoft.sql/servers/databases?tabs=bicep resource sqlDatabase 'Microsoft.Sql/servers/databases@2021-05-01-preview' = { parent: sqlServer name: 'mydrivingDB' location: location sku: { name: 'S0' } properties: { collation: 'SQL_Latin1_General_CP1_CI_AS' } } resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2021-06-01' existing = { name: logAnalyticsWorkspaceName } // https://docs.microsoft.com/en-us/azure/azure-monitor/essentials/resource-manager-diagnostic-settings#diagnostic-setting-for-azure-sql-database // https://docs.microsoft.com/en-us/azure/templates/microsoft.insights/diagnosticsettings?tabs=bicep resource sqlDatabaseDiagnostic 'microsoft.insights/diagnosticSettings@2021-05-01-preview' = { name: 'sqlDbDiag' scope: sqlDatabase properties: { workspaceId: logAnalyticsWorkspace.id logs: [ { category: 'SQLInsights' enabled: true } { category: 'AutomaticTuning' enabled: true } { category: 'QueryStoreRuntimeStatistics' enabled: true } { category: 'QueryStoreWaitStatistics' enabled: true } { category: 'Errors' enabled: true } { category: 'DatabaseWaitStatistics' enabled: true } { category: 'Timeouts' enabled: true } { category: 'Blocks' enabled: true } { category: 'Deadlocks' enabled: true } { category: 'DevOpsOperationsAudit' enabled: true } { category: 'SQLSecurityAuditEvents' enabled: true } ] metrics: [ { category: 'Basic' enabled: true } { category: 'InstanceAndAppAdvanced' enabled: true } { category: 'WorkloadManagement' enabled: true } ] } } output sqlServerAdminLogin string = varfile.sqlServerAdminLogin output sqlServerFqdn string = sqlServer.properties.fullyQualifiedDomainName output sqlDatabaseName string = sqlDatabase.name output sqlServerName string = sqlServer.name output sqlServerId string = sqlServer.id