121 lines
3.0 KiB
Bicep
121 lines
3.0 KiB
Bicep
|
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
|