Compartir a través de


Microsoft. Servidores SQL y bases de datos 2017-03-01-preview

Definición de recurso Bicep

El tipo de recurso servers/databases se puede implementar con operaciones destinadas a:

Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.

Formato de recurso

Para crear un Microsoft. Recurso SQL/servidores/bases de datos, añade el siguiente Bicep a tu plantilla.

resource symbolicname 'Microsoft.Sql/servers/databases@2017-03-01-preview' = {
  parent: resourceSymbolicName
  location: 'string'
  name: 'string'
  properties: {
    catalogCollation: 'string'
    collation: 'string'
    createMode: 'string'
    elasticPoolId: 'string'
    longTermRetentionBackupResourceId: 'string'
    maxSizeBytes: int
    recoverableDatabaseId: 'string'
    recoveryServicesRecoveryPointId: 'string'
    restorableDroppedDatabaseId: 'string'
    restorePointInTime: 'string'
    sampleName: 'string'
    sourceDatabaseDeletionDate: 'string'
    sourceDatabaseId: 'string'
    zoneRedundant: bool
  }
  sku: {
    capacity: int
    family: 'string'
    name: 'string'
    size: 'string'
    tier: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

Valores de propiedad

Microsoft. SQL/servidores/bases de datos

Name Description Value
location Ubicación del recurso. string (obligatorio)
name El nombre del recurso string (obligatorio)
parent En Bicep, puedes especificar el recurso padre para un recurso hijo. Solo tiene que agregar esta propiedad cuando el recurso secundario se declara fuera del recurso primario.

Para obtener más información, consulte recurso secundario fuera del recurso primario.
Nombre simbólico para el recurso de tipo: servidores
properties Propiedades de recursos. DatabaseProperties
sku Nombre y nivel de la SKU. Sku
tags Etiquetas de recursos Diccionario de nombres y valores de etiqueta. Consulte etiquetas de en plantillas

DatabaseProperties

Name Description Value
catalogCollation Intercalación del catálogo de metadatos. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
collation Intercalación de la base de datos. string
createMode Especifica el modo de creación de la base de datos.

Valor predeterminado: creación normal de la base de datos.

Copiar: crea una base de datos como una copia de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos de origen.

Secundario: crea una base de datos como una réplica secundaria de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos principal existente.

PointInTimeRestore: crea una base de datos restaurando una copia de seguridad a un momento dado de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos existente y se debe especificar restorePointInTime.

Recuperación: crea una base de datos restaurando una copia de seguridad con replicación geográfica. sourceDatabaseId debe especificarse como identificador de recurso de base de datos recuperable que se va a restaurar.

Restaurar: crea una base de datos restaurando una copia de seguridad de una base de datos eliminada. sourceDatabaseId debe especificarse. Si sourceDatabaseId es el identificador de recurso original de la base de datos, se debe especificar sourceDatabaseDeletionDate. De lo contrario, sourceDatabaseId debe ser el identificador de recurso de base de datos descartable restaurable y sourceDatabaseDeletionDate se omite. restorePointInTime también se puede especificar para restaurar desde un momento dado anterior.

RestoreLongTermRetentionBackup: crea una base de datos restaurando desde un almacén de retención a largo plazo. recoveryServicesRecoveryPointResourceId debe especificarse como identificador de recurso de punto de recuperación.

Copy, Secondary y RestoreLongTermRetentionBackup no se admiten para la edición DataWarehouse.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId Identificador de recurso del grupo elástico que contiene esta base de datos. string
longTermRetentionBackupResourceId Identificador de recursos de la copia de seguridad de retención a largo plazo asociada al funcionamiento de creación de esta base de datos. string
maxSizeBytes Tamaño máximo de la base de datos expresada en bytes. int
recoverableDatabaseId Identificador de recurso de la base de datos recuperable asociada a la operación de creación de esta base de datos. string
recoveryServicesRecoveryPointId Identificador de recurso del punto de recuperación asociado a la operación de creación de esta base de datos. string
restorableDroppedDatabaseId Identificador de recurso de la base de datos que se puede restaurar asociada a la operación de creación de esta base de datos. string
restorePointInTime Especifica el momento dado (ISO8601 formato) de la base de datos de origen que se restaurará para crear la nueva base de datos. string
sampleName Nombre del esquema de ejemplo que se va a aplicar al crear esta base de datos. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
sourceDatabaseDeletionDate Especifica la hora en que se eliminó la base de datos. string
sourceDatabaseId Identificador de recurso de la base de datos de origen asociada a la operación de creación de esta base de datos. string
zoneRedundant Si esta base de datos es con redundancia de zona, lo que significa que las réplicas de esta base de datos se distribuirán entre varias zonas de disponibilidad. bool

Sku

Name Description Value
capacity Capacidad de la SKU determinada. int
family Si el servicio tiene diferentes generaciones de hardware, para la misma SKU, se puede capturar aquí. string
name El nombre de la SKU, normalmente, una letra + código de número, por ejemplo, P3. string (obligatorio)
size Tamaño de la SKU determinada string
tier Nivel o edición de la SKU concreta, por ejemplo, Básico, Premium. string

TrackedResourceTags

Name Description Value

Ejemplos de uso

Muestras de Bicep

Un ejemplo básico de implementación de MS SQL Database.

param resourceName string = 'acctest0001'
param location string = 'westeurope'
@secure()
@description('The administrator login password for the SQL server')
param administratorLoginPassword string

resource server 'Microsoft.Sql/servers@2021-02-01-preview' = {
  name: resourceName
  location: location
  properties: {
    administratorLogin: 'mradministrator'
    administratorLoginPassword: null
    minimalTlsVersion: '1.2'
    publicNetworkAccess: 'Enabled'
    restrictOutboundNetworkAccess: 'Disabled'
    version: '12.0'
  }
}

resource database 'Microsoft.Sql/servers/databases@2021-02-01-preview' = {
  parent: server
  name: resourceName
  location: location
  properties: {
    autoPauseDelay: 0
    createMode: 'Default'
    elasticPoolId: ''
    highAvailabilityReplicaCount: 0
    isLedgerOn: false
    licenseType: 'LicenseIncluded'
    maintenanceConfigurationId: resourceId('Microsoft.Maintenance/publicMaintenanceConfigurations', 'SQL_Default')
    minCapacity: 0
    readScale: 'Disabled'
    requestedBackupStorageRedundancy: 'Geo'
    zoneRedundant: false
  }
}

Azure Verified Modules

Los siguientes módulos verificados Azure pueden usarse para desplegar este tipo de recurso.

Módulo Description
Azure SQL Database AVM Resource Module for Azure SQL Database

Azure Quickstart Samples

Las siguientes plantillas de inicio rápido Azure contienen Bicep ejemplos para desplegar este tipo de recurso.

Archivo Bicep Description
Azure SQL Server con Auditoría redactada a Log Analytics Esta plantilla te permite desplegar un servidor Azure SQL con Auditoría activada para escribir registros de auditoría en Log Analytics (espacio de trabajo OMS)
Crear un SQL Server y una base de datos Esta plantilla le permite crear SQL Database y Server.
Pool SQL dedicado con cifrado transparente Crea un SQL Server y un pool SQL dedicado (anteriormente SQL DW) con Cifrado de datos transparente.
Despliega la analítica deportiva en Azure Arquitectura Crea una cuenta de almacenamiento de Azure con ADLS Gen 2 habilitada, una instancia de Azure Data Factory con servicios vinculados para la cuenta de almacenamiento (y la Azure SQL Database si está desplegada), y una instancia de Azure Databricks. AAD identity for the user deploying the template and the managed identity for the ADF instance will be granted the Storage Blob Data Contributor role on the storage account. También hay opciones para desplegar una instancia de Azure Key Vault, una Azure SQL Database y un Azure Event Hub (para casos de uso en streaming). Cuando se despliega un Azure Key Vault, la identidad gestionada por la fábrica de datos y la identidad AAD del usuario que despliega la plantilla recibirán el rol de usuario de Key Vault Secrets.
Esta plantilla muestra cómo crear un endpoint privado que apunta a Azure SQL Server
Provisiona una aplicación web con una base de datos SQL Esta plantilla aprovisiona una aplicación web, una instancia de SQL Database, la configuración de escalabilidad automática, las reglas de alerta y App Insights. Configura una cadena de conexión en la aplicación web para la base de datos.
Sonarqube Docker Web App en Linux con Azure SQL Esta plantilla despliega Sonarqube en un contenedor Linux de Azure App Service web usando la imagen oficial de Sonarqube y respaldado por un Azure SQL Server.
Aplicación Web con Identidad Gestionada, SQL Server y ΑΙ Ejemplo sencillo para desplegar infraestructura de Azure para app + datos + identidad gestionada + monitorización

Definición de recursos de plantilla de ARM

El tipo de recurso servers/databases se puede implementar con operaciones destinadas a:

Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.

Formato de recurso

Para crear un Microsoft. Recurso SQL/servidores/bases de datos, añade el siguiente JSON a tu plantilla.

{
  "type": "Microsoft.Sql/servers/databases",
  "apiVersion": "2017-03-01-preview",
  "name": "string",
  "location": "string",
  "properties": {
    "catalogCollation": "string",
    "collation": "string",
    "createMode": "string",
    "elasticPoolId": "string",
    "longTermRetentionBackupResourceId": "string",
    "maxSizeBytes": "int",
    "recoverableDatabaseId": "string",
    "recoveryServicesRecoveryPointId": "string",
    "restorableDroppedDatabaseId": "string",
    "restorePointInTime": "string",
    "sampleName": "string",
    "sourceDatabaseDeletionDate": "string",
    "sourceDatabaseId": "string",
    "zoneRedundant": "bool"
  },
  "sku": {
    "capacity": "int",
    "family": "string",
    "name": "string",
    "size": "string",
    "tier": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

Valores de propiedad

Microsoft. SQL/servidores/bases de datos

Name Description Value
apiVersion La versión de api '2017-03-01-preview'
location Ubicación del recurso. string (obligatorio)
name El nombre del recurso string (obligatorio)
properties Propiedades de recursos. DatabaseProperties
sku Nombre y nivel de la SKU. Sku
tags Etiquetas de recursos Diccionario de nombres y valores de etiqueta. Consulte etiquetas de en plantillas
type El tipo de recurso 'Microsoft. Sql/servidores/bases de datos

DatabaseProperties

Name Description Value
catalogCollation Intercalación del catálogo de metadatos. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
collation Intercalación de la base de datos. string
createMode Especifica el modo de creación de la base de datos.

Valor predeterminado: creación normal de la base de datos.

Copiar: crea una base de datos como una copia de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos de origen.

Secundario: crea una base de datos como una réplica secundaria de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos principal existente.

PointInTimeRestore: crea una base de datos restaurando una copia de seguridad a un momento dado de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos existente y se debe especificar restorePointInTime.

Recuperación: crea una base de datos restaurando una copia de seguridad con replicación geográfica. sourceDatabaseId debe especificarse como identificador de recurso de base de datos recuperable que se va a restaurar.

Restaurar: crea una base de datos restaurando una copia de seguridad de una base de datos eliminada. sourceDatabaseId debe especificarse. Si sourceDatabaseId es el identificador de recurso original de la base de datos, se debe especificar sourceDatabaseDeletionDate. De lo contrario, sourceDatabaseId debe ser el identificador de recurso de base de datos descartable restaurable y sourceDatabaseDeletionDate se omite. restorePointInTime también se puede especificar para restaurar desde un momento dado anterior.

RestoreLongTermRetentionBackup: crea una base de datos restaurando desde un almacén de retención a largo plazo. recoveryServicesRecoveryPointResourceId debe especificarse como identificador de recurso de punto de recuperación.

Copy, Secondary y RestoreLongTermRetentionBackup no se admiten para la edición DataWarehouse.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId Identificador de recurso del grupo elástico que contiene esta base de datos. string
longTermRetentionBackupResourceId Identificador de recursos de la copia de seguridad de retención a largo plazo asociada al funcionamiento de creación de esta base de datos. string
maxSizeBytes Tamaño máximo de la base de datos expresada en bytes. int
recoverableDatabaseId Identificador de recurso de la base de datos recuperable asociada a la operación de creación de esta base de datos. string
recoveryServicesRecoveryPointId Identificador de recurso del punto de recuperación asociado a la operación de creación de esta base de datos. string
restorableDroppedDatabaseId Identificador de recurso de la base de datos que se puede restaurar asociada a la operación de creación de esta base de datos. string
restorePointInTime Especifica el momento dado (ISO8601 formato) de la base de datos de origen que se restaurará para crear la nueva base de datos. string
sampleName Nombre del esquema de ejemplo que se va a aplicar al crear esta base de datos. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
sourceDatabaseDeletionDate Especifica la hora en que se eliminó la base de datos. string
sourceDatabaseId Identificador de recurso de la base de datos de origen asociada a la operación de creación de esta base de datos. string
zoneRedundant Si esta base de datos es con redundancia de zona, lo que significa que las réplicas de esta base de datos se distribuirán entre varias zonas de disponibilidad. bool

Sku

Name Description Value
capacity Capacidad de la SKU determinada. int
family Si el servicio tiene diferentes generaciones de hardware, para la misma SKU, se puede capturar aquí. string
name El nombre de la SKU, normalmente, una letra + código de número, por ejemplo, P3. string (obligatorio)
size Tamaño de la SKU determinada string
tier Nivel o edición de la SKU concreta, por ejemplo, Básico, Premium. string

TrackedResourceTags

Name Description Value

Ejemplos de uso

Plantillas de inicio rápido de Azure

Las siguientes plantillas Azure Quickstart despliegan este tipo de recurso.

Template Description
Azure SQL Server con Auditoría redactada a Log Analytics

Despliega en Azure
Esta plantilla te permite desplegar un servidor Azure SQL con Auditoría activada para escribir registros de auditoría en Log Analytics (espacio de trabajo OMS)
Crear un SQL Server y una base de datos

Despliega en Azure
Esta plantilla le permite crear SQL Database y Server.
Pool SQL dedicado con cifrado transparente

Despliega en Azure
Crea un SQL Server y un pool SQL dedicado (anteriormente SQL DW) con Cifrado de datos transparente.
Despliega un nuevo SQL Elastic Pool

Despliega en Azure
Esta plantilla te permite desplegar un nuevo SQL Elastic Pool con su nuevo SQL Server asociado y nuevas bases de datos SQL para asignarle.
Despliega la analítica deportiva en Azure Arquitectura

Despliega en Azure
Crea una cuenta de almacenamiento de Azure con ADLS Gen 2 habilitada, una instancia de Azure Data Factory con servicios vinculados para la cuenta de almacenamiento (y la Azure SQL Database si está desplegada), y una instancia de Azure Databricks. AAD identity for the user deploying the template and the managed identity for the ADF instance will be granted the Storage Blob Data Contributor role on the storage account. También hay opciones para desplegar una instancia de Azure Key Vault, una Azure SQL Database y un Azure Event Hub (para casos de uso en streaming). Cuando se despliega un Azure Key Vault, la identidad gestionada por la fábrica de datos y la identidad AAD del usuario que despliega la plantilla recibirán el rol de usuario de Key Vault Secrets.
HDInsight con Ambari personalizada + base de datos Hive Metastore en VNET

Despliega en Azure
Esta plantilla permite crear un clúster de HDInsight en una red virtual existente con una nueva base de datos SQL que actúa como base de datos de Ambari personalizada y Metastore de Hive. Debe tener una instancia de SQL Sever, una cuenta de almacenamiento y una red virtual existentes.


Despliega en Azure
Esta plantilla muestra cómo crear un endpoint privado que apunta a Azure SQL Server
Provisiona una aplicación web con una base de datos SQL

Despliega en Azure
Esta plantilla aprovisiona una aplicación web, una instancia de SQL Database, la configuración de escalabilidad automática, las reglas de alerta y App Insights. Configura una cadena de conexión en la aplicación web para la base de datos.
Escritorio remoto Servicios con Alta Disponibilidad

Despliega en Azure
Este código de ejemplo de plantilla ARM desplegará un laboratorio de la Colección de Sesiones 2019 Escritorio remoto Services 2019 con alta disponibilidad. El objetivo es desplegar una solución totalmente redundante y altamente disponible para Escritorio remoto Services, utilizando Windows Server 2019.
Sonarqube Docker Web App en Linux con Azure SQL

Despliega en Azure
Esta plantilla despliega Sonarqube en un contenedor Linux de Azure App Service web usando la imagen oficial de Sonarqube y respaldado por un Azure SQL Server.
Aplicación Web con Identidad Gestionada, SQL Server y ΑΙ

Despliega en Azure
Ejemplo sencillo para desplegar infraestructura de Azure para app + datos + identidad gestionada + monitorización
WebApp consumiendo un Azure SQL Endpoint Privado

Despliega en Azure
Esta plantilla muestra cómo crear una aplicación web que consuma un endpoint privado que apunta a Azure SQL Server

Definición de recursos de Terraform (proveedor AzAPI)

El tipo de recurso servers/databases se puede implementar con operaciones destinadas a:

  • Grupos de recursos

Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.

Formato de recurso

Para crear un Microsoft. Recurso SQL/servidores/bases de datos, añade el siguiente Terraform a tu plantilla.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Sql/servers/databases@2017-03-01-preview"
  name = "string"
  parent_id = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    properties = {
      catalogCollation = "string"
      collation = "string"
      createMode = "string"
      elasticPoolId = "string"
      longTermRetentionBackupResourceId = "string"
      maxSizeBytes = int
      recoverableDatabaseId = "string"
      recoveryServicesRecoveryPointId = "string"
      restorableDroppedDatabaseId = "string"
      restorePointInTime = "string"
      sampleName = "string"
      sourceDatabaseDeletionDate = "string"
      sourceDatabaseId = "string"
      zoneRedundant = bool
    }
    sku = {
      capacity = int
      family = "string"
      name = "string"
      size = "string"
      tier = "string"
    }
  }
}

Valores de propiedad

Microsoft. SQL/servidores/bases de datos

Name Description Value
location Ubicación del recurso. string (obligatorio)
name El nombre del recurso string (obligatorio)
parent_id Identificador del recurso que es el elemento primario de este recurso. ID para recurso de tipo: servidores
properties Propiedades de recursos. DatabaseProperties
sku Nombre y nivel de la SKU. Sku
tags Etiquetas de recursos Diccionario de nombres y valores de etiqueta.
type El tipo de recurso "Microsoft. Sql/servidores/databases@2017-03-01-previsualización"

DatabaseProperties

Name Description Value
catalogCollation Intercalación del catálogo de metadatos. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
collation Intercalación de la base de datos. string
createMode Especifica el modo de creación de la base de datos.

Valor predeterminado: creación normal de la base de datos.

Copiar: crea una base de datos como una copia de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos de origen.

Secundario: crea una base de datos como una réplica secundaria de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos principal existente.

PointInTimeRestore: crea una base de datos restaurando una copia de seguridad a un momento dado de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos existente y se debe especificar restorePointInTime.

Recuperación: crea una base de datos restaurando una copia de seguridad con replicación geográfica. sourceDatabaseId debe especificarse como identificador de recurso de base de datos recuperable que se va a restaurar.

Restaurar: crea una base de datos restaurando una copia de seguridad de una base de datos eliminada. sourceDatabaseId debe especificarse. Si sourceDatabaseId es el identificador de recurso original de la base de datos, se debe especificar sourceDatabaseDeletionDate. De lo contrario, sourceDatabaseId debe ser el identificador de recurso de base de datos descartable restaurable y sourceDatabaseDeletionDate se omite. restorePointInTime también se puede especificar para restaurar desde un momento dado anterior.

RestoreLongTermRetentionBackup: crea una base de datos restaurando desde un almacén de retención a largo plazo. recoveryServicesRecoveryPointResourceId debe especificarse como identificador de recurso de punto de recuperación.

Copy, Secondary y RestoreLongTermRetentionBackup no se admiten para la edición DataWarehouse.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId Identificador de recurso del grupo elástico que contiene esta base de datos. string
longTermRetentionBackupResourceId Identificador de recursos de la copia de seguridad de retención a largo plazo asociada al funcionamiento de creación de esta base de datos. string
maxSizeBytes Tamaño máximo de la base de datos expresada en bytes. int
recoverableDatabaseId Identificador de recurso de la base de datos recuperable asociada a la operación de creación de esta base de datos. string
recoveryServicesRecoveryPointId Identificador de recurso del punto de recuperación asociado a la operación de creación de esta base de datos. string
restorableDroppedDatabaseId Identificador de recurso de la base de datos que se puede restaurar asociada a la operación de creación de esta base de datos. string
restorePointInTime Especifica el momento dado (ISO8601 formato) de la base de datos de origen que se restaurará para crear la nueva base de datos. string
sampleName Nombre del esquema de ejemplo que se va a aplicar al crear esta base de datos. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
sourceDatabaseDeletionDate Especifica la hora en que se eliminó la base de datos. string
sourceDatabaseId Identificador de recurso de la base de datos de origen asociada a la operación de creación de esta base de datos. string
zoneRedundant Si esta base de datos es con redundancia de zona, lo que significa que las réplicas de esta base de datos se distribuirán entre varias zonas de disponibilidad. bool

Sku

Name Description Value
capacity Capacidad de la SKU determinada. int
family Si el servicio tiene diferentes generaciones de hardware, para la misma SKU, se puede capturar aquí. string
name El nombre de la SKU, normalmente, una letra + código de número, por ejemplo, P3. string (obligatorio)
size Tamaño de la SKU determinada string
tier Nivel o edición de la SKU concreta, por ejemplo, Básico, Premium. string

TrackedResourceTags

Name Description Value

Ejemplos de uso

Ejemplos de Terraform

Un ejemplo básico de implementación de MS SQL Database.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
    azurerm = {
      source = "hashicorp/azurerm"
    }
  }
}

provider "azurerm" {
  features {
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

variable "administrator_login_password" {
  type        = string
  description = "The administrator login password for the SQL server"
  sensitive   = true
}

data "azurerm_client_config" "current" {
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "server" {
  type      = "Microsoft.Sql/servers@2021-02-01-preview"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      administratorLogin            = "mradministrator"
      administratorLoginPassword    = var.administrator_login_password
      minimalTlsVersion             = "1.2"
      publicNetworkAccess           = "Enabled"
      restrictOutboundNetworkAccess = "Disabled"
      version                       = "12.0"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

data "azapi_resource_id" "publicMaintenanceConfiguration" {
  type      = "Microsoft.Maintenance/publicMaintenanceConfigurations@2023-04-01"
  parent_id = "/subscriptions/${data.azurerm_client_config.current.subscription_id}"
  name      = "SQL_Default"
}

resource "azapi_resource" "database" {
  type      = "Microsoft.Sql/servers/databases@2021-02-01-preview"
  parent_id = azapi_resource.server.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      autoPauseDelay                   = 0
      createMode                       = "Default"
      elasticPoolId                    = ""
      highAvailabilityReplicaCount     = 0
      isLedgerOn                       = false
      licenseType                      = "LicenseIncluded"
      maintenanceConfigurationId       = data.azapi_resource_id.publicMaintenanceConfiguration.id
      minCapacity                      = 0
      readScale                        = "Disabled"
      requestedBackupStorageRedundancy = "Geo"
      zoneRedundant                    = false
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

Un ejemplo básico de implementación de MS SQL Database.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
    azurerm = {
      source = "hashicorp/azurerm"
    }
  }
}

provider "azurerm" {
  features {
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

variable "administrator_login_password" {
  type        = string
  description = "The administrator login password for the SQL server"
  sensitive   = true
}

data "azurerm_client_config" "current" {
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "server" {
  type      = "Microsoft.Sql/servers@2021-02-01-preview"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      administratorLogin            = "mradministrator"
      administratorLoginPassword    = var.administrator_login_password
      minimalTlsVersion             = "1.2"
      publicNetworkAccess           = "Enabled"
      restrictOutboundNetworkAccess = "Disabled"
      version                       = "12.0"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

data "azapi_resource_id" "publicMaintenanceConfiguration" {
  type      = "Microsoft.Maintenance/publicMaintenanceConfigurations@2023-04-01"
  parent_id = "/subscriptions/${data.azurerm_client_config.current.subscription_id}"
  name      = "SQL_Default"
}

resource "azapi_resource" "database" {
  type      = "Microsoft.Sql/servers/databases@2021-02-01-preview"
  parent_id = azapi_resource.server.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      autoPauseDelay                   = 0
      createMode                       = "Default"
      elasticPoolId                    = ""
      highAvailabilityReplicaCount     = 0
      isLedgerOn                       = false
      licenseType                      = "LicenseIncluded"
      maintenanceConfigurationId       = data.azapi_resource_id.publicMaintenanceConfiguration.id
      minCapacity                      = 0
      readScale                        = "Disabled"
      requestedBackupStorageRedundancy = "Geo"
      zoneRedundant                    = false
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}