Microsoft. SQL-servers/databases

Bicep-resourcedefinitie

Het resourcetype servers/databases kan worden geïmplementeerd met bewerkingen die zijn gericht op:

Zie logboek wijzigenvoor een lijst met gewijzigde eigenschappen in elke API-versie.

Resource-indeling

Om een Microsoft te creëren. SQL/servers/databases-resource, voeg de volgende Bicep toe aan je sjabloon.

resource symbolicname 'Microsoft.Sql/servers/databases@2025-02-01-preview' = {
  parent: resourceSymbolicName
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  location: 'string'
  name: 'string'
  properties: {
    autoPauseDelay: int
    availabilityZone: 'string'
    catalogCollation: 'string'
    collation: 'string'
    createMode: 'string'
    elasticPoolId: 'string'
    encryptionProtector: 'string'
    encryptionProtectorAutoRotation: bool
    federatedClientId: 'string'
    freeLimitExhaustionBehavior: 'string'
    highAvailabilityReplicaCount: int
    isLedgerOn: bool
    keys: {
      {customized property}: {}
    }
    licenseType: 'string'
    longTermRetentionBackupResourceId: 'string'
    maintenanceConfigurationId: 'string'
    manualCutover: bool
    maxSizeBytes: int
    minCapacity: int
    performCutover: bool
    preferredEnclaveType: 'string'
    readScale: 'string'
    recoverableDatabaseId: 'string'
    recoveryServicesRecoveryPointId: 'string'
    requestedBackupStorageRedundancy: 'string'
    restorableDroppedDatabaseId: 'string'
    restorePointInTime: 'string'
    sampleName: 'string'
    secondaryType: 'string'
    sourceDatabaseDeletionDate: 'string'
    sourceDatabaseId: 'string'
    sourceResourceId: 'string'
    useFreeLimit: bool
    zoneRedundant: bool
  }
  sku: {
    capacity: int
    family: 'string'
    name: 'string'
    size: 'string'
    tier: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

Eigenschapswaarden

Microsoft. SQL/servers/databases

Name Description Value
identity De Azure Active Directory-identiteit van de database. DatabaseIdentity
location De geografische locatie waar de resource zich bevindt tekenreeks (vereist)
name De resourcenaam tekenreeks (vereist)
parent In Bicep kun je de ouderresource voor een kindresource specificeren. U hoeft deze eigenschap alleen toe te voegen wanneer de onderliggende resource buiten de bovenliggende resource wordt gedeclareerd.

Zie onderliggende resource buiten de bovenliggende resourcevoor meer informatie.
Symbolische naam voor resource van het type: servers
properties Resource-eigenschappen. DatabaseProperties
sku De database-SKU.

De lijst met SKU's kan variëren per regio en ondersteuningsaanbieding. Om de SKU's (inclusief de SKU-naam, niveau/editie, familie en capaciteit) te bepalen die beschikbaar zijn voor je abonnement in een Azure regio, gebruik je de Capabilities_ListByLocation REST API of een van de volgende commando's:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />

powershell<br />Get-AzSqlServerServiceObjective -Location &lt;location&gt;<br />
Sku
tags Resourcetags Woordenlijst met tagnamen en -waarden. Zie Tags in sjablonen

DatabaseIdentity

Name Description Value
type Het identiteitstype 'None'
'UserAssigned'
userAssignedIdentities De resource-id's van de door de gebruiker toegewezen identiteiten die moeten worden gebruikt DatabaseIdentityUserAssignedIdentities

DatabaseIdentityUserAssignedIdentities

Name Description Value

DatabaseKey

Name Description Value

DatabaseProperties

Name Description Value
autoPauseDelay Tijd in minuten waarna de database automatisch wordt onderbroken. Een waarde van -1 betekent dat automatische pauze is uitgeschakeld int
availabilityZone Hiermee geeft u de beschikbaarheidszone op waaraan de database is vastgemaakt. '1'
'2'
'3'
'NoPreference'
catalogCollation Sortering van de metagegevenscatalogus. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
collation De sortering van de database. string
createMode Hiermee geeft u de modus voor het maken van de database op.

Standaard: het maken van een gewone database.

Kopiëren: maakt een database als een kopie van een bestaande database. sourceDatabaseId moet worden opgegeven als de resource-id van de brondatabase.

Secundair: maakt een database als een secundaire replica van een bestaande database. sourceDatabaseId moet worden opgegeven als de resource-id van de bestaande primaire database.

PointInTimeRestore: Hiermee maakt u een database door een back-up naar een bepaald tijdstip van een bestaande database te herstellen. sourceDatabaseId moet worden opgegeven als de resource-id van de bestaande database en restorePointInTime moet worden opgegeven.

Herstel: Hiermee maakt u een database door een geo-gerepliceerde back-up te herstellen. sourceDatabaseId moet worden opgegeven als de herstelbare databaseresource-id om te herstellen.

Herstellen: Hiermee maakt u een database door een back-up van een verwijderde database te herstellen. sourceDatabaseId moet worden opgegeven. Als sourceDatabaseId de oorspronkelijke resource-id van de database is, moet sourceDatabaseDeletionDate worden opgegeven. Anders moet sourceDatabaseId de restorable verwijderde databaseresource-id zijn en sourceDatabaseDeletionDate wordt genegeerd. restorePointInTime kan ook worden opgegeven om te herstellen vanaf een eerder tijdstip.

RestoreLongTermRetentionBackup: Hiermee maakt u een database door een langetermijnretentiekluis te herstellen. recoveryServicesRecoveryPointResourceId moet worden opgegeven als de resource-id van het herstelpunt.

Kopiëren, Secundair en RestoreLongTermRetentionBackup worden niet ondersteund voor de DataWarehouse-editie.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId De resource-id van de elastische pool die deze database bevat. string
encryptionProtector De Azure Key Vault-URI van de database als deze is geconfigureerd met beheerde sleutels per database door de klant. string
encryptionProtectorAutoRotation De vlag voor het in- of uitschakelen van automatische rotatie van de AKV-sleutel voor databaseversleutelingsbeveiliging. bool
federatedClientId De client-id die wordt gebruikt voor cmk-scenario voor meerdere tenants per database string

Constraints:
Minimale lengte = 36
Maximale lengte = 36
Patroon = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
freeLimitExhaustionBehavior Hiermee geeft u het gedrag op wanneer maandelijkse gratis limieten worden uitgeput voor de gratis database.

AutoPause: De database wordt automatisch onderbroken bij uitputting van de gratis limieten voor de rest van de maand.

BillForUsage: De database blijft online bij uitputting van gratis limieten en eventuele overschrijdingen worden gefactureerd.
'AutoPause'
'BillOverUsage'
highAvailabilityReplicaCount Het aantal secundaire replica's dat is gekoppeld aan de database Bedrijfskritiek, Premium of Hyperscale-editie die wordt gebruikt om hoge beschikbaarheid te bieden. Niet van toepassing op een Hyperscale-database in een elastische pool. int
isLedgerOn Of deze database nu een grootboekdatabase is, wat betekent dat alle tabellen in de database grootboektabellen zijn. Opmerking: de waarde van deze eigenschap kan niet worden gewijzigd nadat de database is gemaakt. bool
keys De resource-id's van de door de gebruiker toegewezen identiteiten die moeten worden gebruikt DatabasePropertiesKeys
licenseType Het licentietype dat moet worden toegepast op deze database. LicenseIncluded als je een rijbewijs nodig hebt, of BasePrice als je een rijbewijs hebt en in aanmerking komt voor de Azure Hybrid Benefit. 'BasePrice'
'LicenseIncluded'
longTermRetentionBackupResourceId De resource-id van de back-up voor langetermijnretentie die is gekoppeld aan het maken van deze database. string
maintenanceConfigurationId Onderhoudsconfiguratie-id die is toegewezen aan de database. Met deze configuratie wordt de periode gedefinieerd waarop de onderhoudsupdates plaatsvinden. string
manualCutover Of de klant handmatige cutover moet uitvoeren tijdens de updatedatabasebewerking naar de Hyperscale-laag.

Deze eigenschap is alleen van toepassing bij het schalen van de database van bedrijfskritiek/algemeen gebruik/Premium/Standard naar de Hyperscale-laag.

Wanneer manualCutover is opgegeven, wacht de schaalbewerking totdat gebruikersinvoer cutover naar de Hyperscale-database activeert.

Als u cutover wilt activeren, geeft u de parameter performCutover op wanneer de schaalbewerking de status Wacht heeft.
bool
maxSizeBytes De maximale grootte van de database uitgedrukt in bytes. int
minCapacity Minimale capaciteit die de database altijd heeft toegewezen, indien niet onderbroken int
performCutover Om door de klant beheerde handmatige cutover te activeren tijdens de wachtstatus terwijl de schaalbewerking wordt uitgevoerd.

Deze eigenschapsparameter is alleen van toepassing op schaalbewerkingen die samen met de parameter 'manualCutover' worden gestart.

Deze eigenschap is alleen van toepassing wanneer het schalen van de database van bedrijfskritiek/algemeen gebruik/Premium/Standard naar de Hyperscale-laag al wordt uitgevoerd.

Wanneer performCutover is opgegeven, activeert de schaalbewerking cutover en voert u rolwijziging uit in de Hyperscale-database.
bool
preferredEnclaveType Het type enclave dat is aangevraagd voor de database, bijvoorbeeld standaard- of VBS-enclaves. 'Default'
'VBS'
readScale De status van alleen-lezenroutering. Indien ingeschakeld, kunnen verbindingen waarbij applicatieintentie in hun connection string op readonly is ingesteld, worden gerouteerd naar een readonly secundaire replica in dezelfde regio. Niet van toepassing op een Hyperscale-database in een elastische pool. 'Disabled'
'Enabled'
recoverableDatabaseId De resource-id van de herstelbare database die is gekoppeld aan het maken van deze database. string
recoveryServicesRecoveryPointId De resource-id van het herstelpunt dat is gekoppeld aan het maken van deze database. string
requestedBackupStorageRedundancy Het type opslagaccount dat moet worden gebruikt voor het opslaan van back-ups voor deze database. 'Geo'
'GeoZone'
'Local'
'Zone'
restorableDroppedDatabaseId De resource-id van de terug te zetten database die is gekoppeld aan het maken van deze database. string
restorePointInTime Hiermee geeft u het tijdstip (ISO8601-indeling) van de brondatabase op die wordt hersteld om de nieuwe database te maken. string
sampleName De naam van het voorbeeldschema dat moet worden toegepast bij het maken van deze database. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
secondaryType Het secundaire type van de database als het een secundaire database is. Geldige waarden zijn Geo, Named en Stand-by. 'Geo'
'Named'
'Standby'
sourceDatabaseDeletionDate Hiermee geeft u het tijdstip op waarop de database is verwijderd. string
sourceDatabaseId De resource-id van de brondatabase die is gekoppeld aan het maken van deze database. string
sourceResourceId De resource-id van de bron die is gekoppeld aan de maakbewerking van deze database.

Deze eigenschap wordt alleen ondersteund voor de DataWarehouse-editie en kan worden hersteld tussen abonnementen.

Wanneer sourceResourceId is opgegeven, moet sourceDatabaseId, recoverableDatabaseId, restorableDroppedDatabaseId en sourceDatabaseDeletionDate niet worden opgegeven en Moet CreateMode PointInTimeRestore, Restore of Recover zijn.

Wanneer createMode PointInTimeRestore is, moet sourceResourceId de resource-id van de bestaande database of bestaande SQL-pool zijn en moet restorePointInTime worden opgegeven.

Wanneer createMode is Restore, moet sourceResourceId de resource-id zijn van een verwijderde database of een verwijderde SQL-pool die kan worden teruggezet.

Wanneer createMode is Recover, moet sourceResourceId de resource-id van de herstelbare database of herstelbare SQL-pool zijn.

Wanneer het bronabonnement deel uitmaakt van een andere tenant dan het doelabonnement, moet de header 'x-ms-authorization-auxiliary' verificatietoken voor de brontenant bevatten. Zie /azure/azure-resource-manager/management/authenticate-multitenant voor meer informatie over de header 'x-ms-authorization-auxiliary'.
string
useFreeLimit Of de database wel of niet gratis maandelijkse limieten gebruikt. Toegestaan voor één database in een abonnement. bool
zoneRedundant Of deze database nu zone-redundant is, wat betekent dat de replica's van deze database worden verdeeld over meerdere beschikbaarheidszones. bool

DatabasePropertiesKeys

Name Description Value

DatabaseUserIdentity

Name Description Value

Sku

Name Description Value
capacity Capaciteit van de specifieke SKU. int
family Als de service verschillende generaties hardware heeft, voor dezelfde SKU, kan die hier worden vastgelegd. string
name De naam van de SKU, meestal een letter + cijfercode, bijvoorbeeld P3. tekenreeks (vereist)
size Grootte van de specifieke SKU string
tier De laag of editie van de specifieke SKU, bijvoorbeeld Basic, Premium. string

TrackedResourceTags

Name Description Value

Gebruiksvoorbeelden

Bicep Monsters

Een eenvoudig voorbeeld van het implementeren van 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
  }
}

Geverifieerde Azure-modules

De volgende Azure Geverifieerde modules kunnen worden gebruikt om dit resourcetype uit te voeren.

Module Description
Azure SQL Database AVM Resource Module for Azure SQL Database

Azure Quickstart Samples

De volgende Azure Quickstart-sjablonen bevatten Bicep voorbeelden voor het uitrollen van dit resourcetype.

Bicepsbestand Description
Azure SQL Server met Auditing geschreven naar Log Analytics Met deze template kun je een Azure SQL-server met Auditing ingeschakeld uitrollen om auditlogs te schrijven naar Log Analytics (OMS workspace)
Maak een SQL Server en database Met deze sjabloon kunt u SQL Database en Server maken.
Dedicated SQL-pool met transparante encryptie Maakt een SQL Server en een Dedicated SQL pool (voorheen SQL DW) aan met Transparent Data Encryption.
Rol de Sports Analytics uit op Azure architectuur Maakt een Azure-opslagaccount aan met ADLS Gen 2 ingeschakeld, een Azure Data Factory-instantie met gekoppelde diensten voor het opslagaccount (en de Azure SQL Database indien geïmplementeerd), en een Azure Databricks-instantie. De AAD-identiteit voor de gebruiker die de sjabloon implementeert en de beheerde identiteit voor het ADF-exemplaar krijgt de rol Inzender voor opslagblobgegevens in het opslagaccount. Er zijn ook opties om een Azure Key Vault-instantie, een Azure SQL Database en een Azure Event Hub (voor streaming gebruikssituaties) te implementeren. Wanneer een Azure Key Vault wordt geïmplementeerd, krijgen de door de data factory beheerde identiteit en de AAD-identiteit van de gebruiker die de template deployt de rol van Key Vault Secrets Gebruiker toegekend.
Private Endpoint voorbeeld Deze template laat zien hoe je een privé-endpoint aanmaakt dat verwijst naar Azure SQL Server
Provisioneer een webapp met een SQL-database Deze sjabloon richt een web-app, een SQL Database, instellingen voor automatisch schalen, waarschuwingsregels en App Insights in. Het configureert een connection string in de webapp voor de database.
Sonarqube Docker Web App op Linux met Azure SQL Deze template deployeert Sonarqube in een Azure App Service webapp Linux-container met behulp van het officiële Sonarqube-image en ondersteund door een Azure SQL Server.
Web App met Managed Identity, SQL Server en ΑΙ Eenvoudig voorbeeld om Azure-infrastructuur te implementeren voor app + data + managed identity + monitoring

Resourcedefinitie van ARM-sjabloon

Het resourcetype servers/databases kan worden geïmplementeerd met bewerkingen die zijn gericht op:

Zie logboek wijzigenvoor een lijst met gewijzigde eigenschappen in elke API-versie.

Resource-indeling

Om een Microsoft te creëren. SQL/servers/databases-resource, voeg de volgende JSON toe aan je template.

{
  "type": "Microsoft.Sql/servers/databases",
  "apiVersion": "2025-02-01-preview",
  "name": "string",
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {
      }
    }
  },
  "location": "string",
  "properties": {
    "autoPauseDelay": "int",
    "availabilityZone": "string",
    "catalogCollation": "string",
    "collation": "string",
    "createMode": "string",
    "elasticPoolId": "string",
    "encryptionProtector": "string",
    "encryptionProtectorAutoRotation": "bool",
    "federatedClientId": "string",
    "freeLimitExhaustionBehavior": "string",
    "highAvailabilityReplicaCount": "int",
    "isLedgerOn": "bool",
    "keys": {
      "{customized property}": {
      }
    },
    "licenseType": "string",
    "longTermRetentionBackupResourceId": "string",
    "maintenanceConfigurationId": "string",
    "manualCutover": "bool",
    "maxSizeBytes": "int",
    "minCapacity": "int",
    "performCutover": "bool",
    "preferredEnclaveType": "string",
    "readScale": "string",
    "recoverableDatabaseId": "string",
    "recoveryServicesRecoveryPointId": "string",
    "requestedBackupStorageRedundancy": "string",
    "restorableDroppedDatabaseId": "string",
    "restorePointInTime": "string",
    "sampleName": "string",
    "secondaryType": "string",
    "sourceDatabaseDeletionDate": "string",
    "sourceDatabaseId": "string",
    "sourceResourceId": "string",
    "useFreeLimit": "bool",
    "zoneRedundant": "bool"
  },
  "sku": {
    "capacity": "int",
    "family": "string",
    "name": "string",
    "size": "string",
    "tier": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

Eigenschapswaarden

Microsoft. SQL/servers/databases

Name Description Value
apiVersion De API-versie '2025-02-01-voorbeschouwing'
identity De Azure Active Directory-identiteit van de database. DatabaseIdentity
location De geografische locatie waar de resource zich bevindt tekenreeks (vereist)
name De resourcenaam tekenreeks (vereist)
properties Resource-eigenschappen. DatabaseProperties
sku De database-SKU.

De lijst met SKU's kan variëren per regio en ondersteuningsaanbieding. Om de SKU's (inclusief de SKU-naam, niveau/editie, familie en capaciteit) te bepalen die beschikbaar zijn voor je abonnement in een Azure regio, gebruik je de Capabilities_ListByLocation REST API of een van de volgende commando's:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />

powershell<br />Get-AzSqlServerServiceObjective -Location &lt;location&gt;<br />
Sku
tags Resourcetags Woordenlijst met tagnamen en -waarden. Zie Tags in sjablonen
type Het brontype 'Microsoft. SQL/servers/databases'

DatabaseIdentity

Name Description Value
type Het identiteitstype 'None'
'UserAssigned'
userAssignedIdentities De resource-id's van de door de gebruiker toegewezen identiteiten die moeten worden gebruikt DatabaseIdentityUserAssignedIdentities

DatabaseIdentityUserAssignedIdentities

Name Description Value

DatabaseKey

Name Description Value

DatabaseProperties

Name Description Value
autoPauseDelay Tijd in minuten waarna de database automatisch wordt onderbroken. Een waarde van -1 betekent dat automatische pauze is uitgeschakeld int
availabilityZone Hiermee geeft u de beschikbaarheidszone op waaraan de database is vastgemaakt. '1'
'2'
'3'
'NoPreference'
catalogCollation Sortering van de metagegevenscatalogus. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
collation De sortering van de database. string
createMode Hiermee geeft u de modus voor het maken van de database op.

Standaard: het maken van een gewone database.

Kopiëren: maakt een database als een kopie van een bestaande database. sourceDatabaseId moet worden opgegeven als de resource-id van de brondatabase.

Secundair: maakt een database als een secundaire replica van een bestaande database. sourceDatabaseId moet worden opgegeven als de resource-id van de bestaande primaire database.

PointInTimeRestore: Hiermee maakt u een database door een back-up naar een bepaald tijdstip van een bestaande database te herstellen. sourceDatabaseId moet worden opgegeven als de resource-id van de bestaande database en restorePointInTime moet worden opgegeven.

Herstel: Hiermee maakt u een database door een geo-gerepliceerde back-up te herstellen. sourceDatabaseId moet worden opgegeven als de herstelbare databaseresource-id om te herstellen.

Herstellen: Hiermee maakt u een database door een back-up van een verwijderde database te herstellen. sourceDatabaseId moet worden opgegeven. Als sourceDatabaseId de oorspronkelijke resource-id van de database is, moet sourceDatabaseDeletionDate worden opgegeven. Anders moet sourceDatabaseId de restorable verwijderde databaseresource-id zijn en sourceDatabaseDeletionDate wordt genegeerd. restorePointInTime kan ook worden opgegeven om te herstellen vanaf een eerder tijdstip.

RestoreLongTermRetentionBackup: Hiermee maakt u een database door een langetermijnretentiekluis te herstellen. recoveryServicesRecoveryPointResourceId moet worden opgegeven als de resource-id van het herstelpunt.

Kopiëren, Secundair en RestoreLongTermRetentionBackup worden niet ondersteund voor de DataWarehouse-editie.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId De resource-id van de elastische pool die deze database bevat. string
encryptionProtector De Azure Key Vault-URI van de database als deze is geconfigureerd met beheerde sleutels per database door de klant. string
encryptionProtectorAutoRotation De vlag voor het in- of uitschakelen van automatische rotatie van de AKV-sleutel voor databaseversleutelingsbeveiliging. bool
federatedClientId De client-id die wordt gebruikt voor cmk-scenario voor meerdere tenants per database string

Constraints:
Minimale lengte = 36
Maximale lengte = 36
Patroon = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
freeLimitExhaustionBehavior Hiermee geeft u het gedrag op wanneer maandelijkse gratis limieten worden uitgeput voor de gratis database.

AutoPause: De database wordt automatisch onderbroken bij uitputting van de gratis limieten voor de rest van de maand.

BillForUsage: De database blijft online bij uitputting van gratis limieten en eventuele overschrijdingen worden gefactureerd.
'AutoPause'
'BillOverUsage'
highAvailabilityReplicaCount Het aantal secundaire replica's dat is gekoppeld aan de database Bedrijfskritiek, Premium of Hyperscale-editie die wordt gebruikt om hoge beschikbaarheid te bieden. Niet van toepassing op een Hyperscale-database in een elastische pool. int
isLedgerOn Of deze database nu een grootboekdatabase is, wat betekent dat alle tabellen in de database grootboektabellen zijn. Opmerking: de waarde van deze eigenschap kan niet worden gewijzigd nadat de database is gemaakt. bool
keys De resource-id's van de door de gebruiker toegewezen identiteiten die moeten worden gebruikt DatabasePropertiesKeys
licenseType Het licentietype dat moet worden toegepast op deze database. LicenseIncluded als je een rijbewijs nodig hebt, of BasePrice als je een rijbewijs hebt en in aanmerking komt voor de Azure Hybrid Benefit. 'BasePrice'
'LicenseIncluded'
longTermRetentionBackupResourceId De resource-id van de back-up voor langetermijnretentie die is gekoppeld aan het maken van deze database. string
maintenanceConfigurationId Onderhoudsconfiguratie-id die is toegewezen aan de database. Met deze configuratie wordt de periode gedefinieerd waarop de onderhoudsupdates plaatsvinden. string
manualCutover Of de klant handmatige cutover moet uitvoeren tijdens de updatedatabasebewerking naar de Hyperscale-laag.

Deze eigenschap is alleen van toepassing bij het schalen van de database van bedrijfskritiek/algemeen gebruik/Premium/Standard naar de Hyperscale-laag.

Wanneer manualCutover is opgegeven, wacht de schaalbewerking totdat gebruikersinvoer cutover naar de Hyperscale-database activeert.

Als u cutover wilt activeren, geeft u de parameter performCutover op wanneer de schaalbewerking de status Wacht heeft.
bool
maxSizeBytes De maximale grootte van de database uitgedrukt in bytes. int
minCapacity Minimale capaciteit die de database altijd heeft toegewezen, indien niet onderbroken int
performCutover Om door de klant beheerde handmatige cutover te activeren tijdens de wachtstatus terwijl de schaalbewerking wordt uitgevoerd.

Deze eigenschapsparameter is alleen van toepassing op schaalbewerkingen die samen met de parameter 'manualCutover' worden gestart.

Deze eigenschap is alleen van toepassing wanneer het schalen van de database van bedrijfskritiek/algemeen gebruik/Premium/Standard naar de Hyperscale-laag al wordt uitgevoerd.

Wanneer performCutover is opgegeven, activeert de schaalbewerking cutover en voert u rolwijziging uit in de Hyperscale-database.
bool
preferredEnclaveType Het type enclave dat is aangevraagd voor de database, bijvoorbeeld standaard- of VBS-enclaves. 'Default'
'VBS'
readScale De status van alleen-lezenroutering. Indien ingeschakeld, kunnen verbindingen waarbij applicatieintentie in hun connection string op readonly is ingesteld, worden gerouteerd naar een readonly secundaire replica in dezelfde regio. Niet van toepassing op een Hyperscale-database in een elastische pool. 'Disabled'
'Enabled'
recoverableDatabaseId De resource-id van de herstelbare database die is gekoppeld aan het maken van deze database. string
recoveryServicesRecoveryPointId De resource-id van het herstelpunt dat is gekoppeld aan het maken van deze database. string
requestedBackupStorageRedundancy Het type opslagaccount dat moet worden gebruikt voor het opslaan van back-ups voor deze database. 'Geo'
'GeoZone'
'Local'
'Zone'
restorableDroppedDatabaseId De resource-id van de terug te zetten database die is gekoppeld aan het maken van deze database. string
restorePointInTime Hiermee geeft u het tijdstip (ISO8601-indeling) van de brondatabase op die wordt hersteld om de nieuwe database te maken. string
sampleName De naam van het voorbeeldschema dat moet worden toegepast bij het maken van deze database. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
secondaryType Het secundaire type van de database als het een secundaire database is. Geldige waarden zijn Geo, Named en Stand-by. 'Geo'
'Named'
'Standby'
sourceDatabaseDeletionDate Hiermee geeft u het tijdstip op waarop de database is verwijderd. string
sourceDatabaseId De resource-id van de brondatabase die is gekoppeld aan het maken van deze database. string
sourceResourceId De resource-id van de bron die is gekoppeld aan de maakbewerking van deze database.

Deze eigenschap wordt alleen ondersteund voor de DataWarehouse-editie en kan worden hersteld tussen abonnementen.

Wanneer sourceResourceId is opgegeven, moet sourceDatabaseId, recoverableDatabaseId, restorableDroppedDatabaseId en sourceDatabaseDeletionDate niet worden opgegeven en Moet CreateMode PointInTimeRestore, Restore of Recover zijn.

Wanneer createMode PointInTimeRestore is, moet sourceResourceId de resource-id van de bestaande database of bestaande SQL-pool zijn en moet restorePointInTime worden opgegeven.

Wanneer createMode is Restore, moet sourceResourceId de resource-id zijn van een verwijderde database of een verwijderde SQL-pool die kan worden teruggezet.

Wanneer createMode is Recover, moet sourceResourceId de resource-id van de herstelbare database of herstelbare SQL-pool zijn.

Wanneer het bronabonnement deel uitmaakt van een andere tenant dan het doelabonnement, moet de header 'x-ms-authorization-auxiliary' verificatietoken voor de brontenant bevatten. Zie /azure/azure-resource-manager/management/authenticate-multitenant voor meer informatie over de header 'x-ms-authorization-auxiliary'.
string
useFreeLimit Of de database wel of niet gratis maandelijkse limieten gebruikt. Toegestaan voor één database in een abonnement. bool
zoneRedundant Of deze database nu zone-redundant is, wat betekent dat de replica's van deze database worden verdeeld over meerdere beschikbaarheidszones. bool

DatabasePropertiesKeys

Name Description Value

DatabaseUserIdentity

Name Description Value

Sku

Name Description Value
capacity Capaciteit van de specifieke SKU. int
family Als de service verschillende generaties hardware heeft, voor dezelfde SKU, kan die hier worden vastgelegd. string
name De naam van de SKU, meestal een letter + cijfercode, bijvoorbeeld P3. tekenreeks (vereist)
size Grootte van de specifieke SKU string
tier De laag of editie van de specifieke SKU, bijvoorbeeld Basic, Premium. string

TrackedResourceTags

Name Description Value

Gebruiksvoorbeelden

Snelstartsjablonen voor Azure

De volgende Azure Quickstart-sjablonen deployen dit resourcetype.

Template Description
Azure SQL Server met Auditing geschreven naar Log Analytics

Deploy naar Azure
Met deze template kun je een Azure SQL-server met Auditing ingeschakeld uitrollen om auditlogs te schrijven naar Log Analytics (OMS workspace)
Maak een SQL Server en database

Deploy naar Azure
Met deze sjabloon kunt u SQL Database en Server maken.
Dedicated SQL-pool met transparante encryptie

Deploy naar Azure
Maakt een SQL Server en een Dedicated SQL pool (voorheen SQL DW) aan met Transparent Data Encryption.
Deploy een nieuwe SQL Elastic Pool

Deploy naar Azure
Met dit sjabloon kun je een nieuwe SQL Elastic Pool uitrollen met de bijbehorende SQL Server en nieuwe SQL-databases om eraan toe te wijzen.
Rol de Sports Analytics uit op Azure architectuur

Deploy naar Azure
Maakt een Azure-opslagaccount aan met ADLS Gen 2 ingeschakeld, een Azure Data Factory-instantie met gekoppelde diensten voor het opslagaccount (en de Azure SQL Database indien geïmplementeerd), en een Azure Databricks-instantie. De AAD-identiteit voor de gebruiker die de sjabloon implementeert en de beheerde identiteit voor het ADF-exemplaar krijgt de rol Inzender voor opslagblobgegevens in het opslagaccount. Er zijn ook opties om een Azure Key Vault-instantie, een Azure SQL Database en een Azure Event Hub (voor streaming gebruikssituaties) te implementeren. Wanneer een Azure Key Vault wordt geïmplementeerd, krijgen de door de data factory beheerde identiteit en de AAD-identiteit van de gebruiker die de template deployt de rol van Key Vault Secrets Gebruiker toegekend.
HDInsight met aangepaste Ambari + Hive Metastore DB in VNET

Deploy naar Azure
Met deze sjabloon kunt u een HDInsight-cluster maken in een bestaand virtueel netwerk met een nieuwe SQL-database die fungeert als een aangepaste Ambari-database en Hive Metastore. U moet een bestaand SQL-server, opslagaccount en VNET hebben.
Private Endpoint voorbeeld

Deploy naar Azure
Deze template laat zien hoe je een privé-endpoint aanmaakt dat verwijst naar Azure SQL Server
Provisioneer een webapp met een SQL-database

Deploy naar Azure
Deze sjabloon richt een web-app, een SQL Database, instellingen voor automatisch schalen, waarschuwingsregels en App Insights in. Het configureert een connection string in de webapp voor de database.
Remote Desktop Diensten met hoge beschikbaarheid

Deploy naar Azure
Deze ARM-sjabloon voorbeeldcode zal een Remote Desktop Services 2019 Session Collection lab met hoge beschikbaarheid implementeren. Het doel is om een volledig redundante, zeer beschikbare oplossing voor Remote Desktop Services te implementeren, met Windows Server 2019.
Sonarqube Docker Web App op Linux met Azure SQL

Deploy naar Azure
Deze template deployeert Sonarqube in een Azure App Service webapp Linux-container met behulp van het officiële Sonarqube-image en ondersteund door een Azure SQL Server.
Web App met Managed Identity, SQL Server en ΑΙ

Deploy naar Azure
Eenvoudig voorbeeld om Azure-infrastructuur te implementeren voor app + data + managed identity + monitoring
WebApp verbruikt een Azure SQL Private Endpoint

Deploy naar Azure
Deze template laat zien hoe je een webapp maakt die een privé-endpoint verbruikt dat naar Azure SQL Server verwijst

Resourcedefinitie van Terraform (AzAPI-provider)

Het resourcetype servers/databases kan worden geïmplementeerd met bewerkingen die zijn gericht op:

  • Resourcegroepen

Zie logboek wijzigenvoor een lijst met gewijzigde eigenschappen in elke API-versie.

Resource-indeling

Om een Microsoft te creëren. SQL/servers/databases-resource, voeg de volgende Terraform toe aan je template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Sql/servers/databases@2025-02-01-preview"
  name = "string"
  parent_id = "string"
  identity {
    type = "string"
    identity_ids = [
      "string"
    ]
  }
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    properties = {
      autoPauseDelay = int
      availabilityZone = "string"
      catalogCollation = "string"
      collation = "string"
      createMode = "string"
      elasticPoolId = "string"
      encryptionProtector = "string"
      encryptionProtectorAutoRotation = bool
      federatedClientId = "string"
      freeLimitExhaustionBehavior = "string"
      highAvailabilityReplicaCount = int
      isLedgerOn = bool
      keys = {
        {customized property} = {
        }
      }
      licenseType = "string"
      longTermRetentionBackupResourceId = "string"
      maintenanceConfigurationId = "string"
      manualCutover = bool
      maxSizeBytes = int
      minCapacity = int
      performCutover = bool
      preferredEnclaveType = "string"
      readScale = "string"
      recoverableDatabaseId = "string"
      recoveryServicesRecoveryPointId = "string"
      requestedBackupStorageRedundancy = "string"
      restorableDroppedDatabaseId = "string"
      restorePointInTime = "string"
      sampleName = "string"
      secondaryType = "string"
      sourceDatabaseDeletionDate = "string"
      sourceDatabaseId = "string"
      sourceResourceId = "string"
      useFreeLimit = bool
      zoneRedundant = bool
    }
    sku = {
      capacity = int
      family = "string"
      name = "string"
      size = "string"
      tier = "string"
    }
  }
}

Eigenschapswaarden

Microsoft. SQL/servers/databases

Name Description Value
identity De Azure Active Directory-identiteit van de database. DatabaseIdentity
location De geografische locatie waar de resource zich bevindt tekenreeks (vereist)
name De resourcenaam tekenreeks (vereist)
parent_id De id van de resource die het bovenliggende item voor deze resource is. Id voor resource van het type: servers
properties Resource-eigenschappen. DatabaseProperties
sku De database-SKU.

De lijst met SKU's kan variëren per regio en ondersteuningsaanbieding. Om de SKU's (inclusief de SKU-naam, niveau/editie, familie en capaciteit) te bepalen die beschikbaar zijn voor je abonnement in een Azure regio, gebruik je de Capabilities_ListByLocation REST API of een van de volgende commando's:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />

powershell<br />Get-AzSqlServerServiceObjective -Location &lt;location&gt;<br />
Sku
tags Resourcetags Woordenlijst met tagnamen en -waarden.
type Het brontype "Microsoft. Sql/servers/databases@2025-02-01-preview"

DatabaseIdentity

Name Description Value
type Het identiteitstype 'None'
'UserAssigned'
userAssignedIdentities De resource-id's van de door de gebruiker toegewezen identiteiten die moeten worden gebruikt DatabaseIdentityUserAssignedIdentities

DatabaseIdentityUserAssignedIdentities

Name Description Value

DatabaseKey

Name Description Value

DatabaseProperties

Name Description Value
autoPauseDelay Tijd in minuten waarna de database automatisch wordt onderbroken. Een waarde van -1 betekent dat automatische pauze is uitgeschakeld int
availabilityZone Hiermee geeft u de beschikbaarheidszone op waaraan de database is vastgemaakt. '1'
'2'
'3'
'NoPreference'
catalogCollation Sortering van de metagegevenscatalogus. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
collation De sortering van de database. string
createMode Hiermee geeft u de modus voor het maken van de database op.

Standaard: het maken van een gewone database.

Kopiëren: maakt een database als een kopie van een bestaande database. sourceDatabaseId moet worden opgegeven als de resource-id van de brondatabase.

Secundair: maakt een database als een secundaire replica van een bestaande database. sourceDatabaseId moet worden opgegeven als de resource-id van de bestaande primaire database.

PointInTimeRestore: Hiermee maakt u een database door een back-up naar een bepaald tijdstip van een bestaande database te herstellen. sourceDatabaseId moet worden opgegeven als de resource-id van de bestaande database en restorePointInTime moet worden opgegeven.

Herstel: Hiermee maakt u een database door een geo-gerepliceerde back-up te herstellen. sourceDatabaseId moet worden opgegeven als de herstelbare databaseresource-id om te herstellen.

Herstellen: Hiermee maakt u een database door een back-up van een verwijderde database te herstellen. sourceDatabaseId moet worden opgegeven. Als sourceDatabaseId de oorspronkelijke resource-id van de database is, moet sourceDatabaseDeletionDate worden opgegeven. Anders moet sourceDatabaseId de restorable verwijderde databaseresource-id zijn en sourceDatabaseDeletionDate wordt genegeerd. restorePointInTime kan ook worden opgegeven om te herstellen vanaf een eerder tijdstip.

RestoreLongTermRetentionBackup: Hiermee maakt u een database door een langetermijnretentiekluis te herstellen. recoveryServicesRecoveryPointResourceId moet worden opgegeven als de resource-id van het herstelpunt.

Kopiëren, Secundair en RestoreLongTermRetentionBackup worden niet ondersteund voor de DataWarehouse-editie.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId De resource-id van de elastische pool die deze database bevat. string
encryptionProtector De Azure Key Vault-URI van de database als deze is geconfigureerd met beheerde sleutels per database door de klant. string
encryptionProtectorAutoRotation De vlag voor het in- of uitschakelen van automatische rotatie van de AKV-sleutel voor databaseversleutelingsbeveiliging. bool
federatedClientId De client-id die wordt gebruikt voor cmk-scenario voor meerdere tenants per database string

Constraints:
Minimale lengte = 36
Maximale lengte = 36
Patroon = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
freeLimitExhaustionBehavior Hiermee geeft u het gedrag op wanneer maandelijkse gratis limieten worden uitgeput voor de gratis database.

AutoPause: De database wordt automatisch onderbroken bij uitputting van de gratis limieten voor de rest van de maand.

BillForUsage: De database blijft online bij uitputting van gratis limieten en eventuele overschrijdingen worden gefactureerd.
'AutoPause'
'BillOverUsage'
highAvailabilityReplicaCount Het aantal secundaire replica's dat is gekoppeld aan de database Bedrijfskritiek, Premium of Hyperscale-editie die wordt gebruikt om hoge beschikbaarheid te bieden. Niet van toepassing op een Hyperscale-database in een elastische pool. int
isLedgerOn Of deze database nu een grootboekdatabase is, wat betekent dat alle tabellen in de database grootboektabellen zijn. Opmerking: de waarde van deze eigenschap kan niet worden gewijzigd nadat de database is gemaakt. bool
keys De resource-id's van de door de gebruiker toegewezen identiteiten die moeten worden gebruikt DatabasePropertiesKeys
licenseType Het licentietype dat moet worden toegepast op deze database. LicenseIncluded als je een rijbewijs nodig hebt, of BasePrice als je een rijbewijs hebt en in aanmerking komt voor de Azure Hybrid Benefit. 'BasePrice'
'LicenseIncluded'
longTermRetentionBackupResourceId De resource-id van de back-up voor langetermijnretentie die is gekoppeld aan het maken van deze database. string
maintenanceConfigurationId Onderhoudsconfiguratie-id die is toegewezen aan de database. Met deze configuratie wordt de periode gedefinieerd waarop de onderhoudsupdates plaatsvinden. string
manualCutover Of de klant handmatige cutover moet uitvoeren tijdens de updatedatabasebewerking naar de Hyperscale-laag.

Deze eigenschap is alleen van toepassing bij het schalen van de database van bedrijfskritiek/algemeen gebruik/Premium/Standard naar de Hyperscale-laag.

Wanneer manualCutover is opgegeven, wacht de schaalbewerking totdat gebruikersinvoer cutover naar de Hyperscale-database activeert.

Als u cutover wilt activeren, geeft u de parameter performCutover op wanneer de schaalbewerking de status Wacht heeft.
bool
maxSizeBytes De maximale grootte van de database uitgedrukt in bytes. int
minCapacity Minimale capaciteit die de database altijd heeft toegewezen, indien niet onderbroken int
performCutover Om door de klant beheerde handmatige cutover te activeren tijdens de wachtstatus terwijl de schaalbewerking wordt uitgevoerd.

Deze eigenschapsparameter is alleen van toepassing op schaalbewerkingen die samen met de parameter 'manualCutover' worden gestart.

Deze eigenschap is alleen van toepassing wanneer het schalen van de database van bedrijfskritiek/algemeen gebruik/Premium/Standard naar de Hyperscale-laag al wordt uitgevoerd.

Wanneer performCutover is opgegeven, activeert de schaalbewerking cutover en voert u rolwijziging uit in de Hyperscale-database.
bool
preferredEnclaveType Het type enclave dat is aangevraagd voor de database, bijvoorbeeld standaard- of VBS-enclaves. 'Default'
'VBS'
readScale De status van alleen-lezenroutering. Indien ingeschakeld, kunnen verbindingen waarbij applicatieintentie in hun connection string op readonly is ingesteld, worden gerouteerd naar een readonly secundaire replica in dezelfde regio. Niet van toepassing op een Hyperscale-database in een elastische pool. 'Disabled'
'Enabled'
recoverableDatabaseId De resource-id van de herstelbare database die is gekoppeld aan het maken van deze database. string
recoveryServicesRecoveryPointId De resource-id van het herstelpunt dat is gekoppeld aan het maken van deze database. string
requestedBackupStorageRedundancy Het type opslagaccount dat moet worden gebruikt voor het opslaan van back-ups voor deze database. 'Geo'
'GeoZone'
'Local'
'Zone'
restorableDroppedDatabaseId De resource-id van de terug te zetten database die is gekoppeld aan het maken van deze database. string
restorePointInTime Hiermee geeft u het tijdstip (ISO8601-indeling) van de brondatabase op die wordt hersteld om de nieuwe database te maken. string
sampleName De naam van het voorbeeldschema dat moet worden toegepast bij het maken van deze database. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
secondaryType Het secundaire type van de database als het een secundaire database is. Geldige waarden zijn Geo, Named en Stand-by. 'Geo'
'Named'
'Standby'
sourceDatabaseDeletionDate Hiermee geeft u het tijdstip op waarop de database is verwijderd. string
sourceDatabaseId De resource-id van de brondatabase die is gekoppeld aan het maken van deze database. string
sourceResourceId De resource-id van de bron die is gekoppeld aan de maakbewerking van deze database.

Deze eigenschap wordt alleen ondersteund voor de DataWarehouse-editie en kan worden hersteld tussen abonnementen.

Wanneer sourceResourceId is opgegeven, moet sourceDatabaseId, recoverableDatabaseId, restorableDroppedDatabaseId en sourceDatabaseDeletionDate niet worden opgegeven en Moet CreateMode PointInTimeRestore, Restore of Recover zijn.

Wanneer createMode PointInTimeRestore is, moet sourceResourceId de resource-id van de bestaande database of bestaande SQL-pool zijn en moet restorePointInTime worden opgegeven.

Wanneer createMode is Restore, moet sourceResourceId de resource-id zijn van een verwijderde database of een verwijderde SQL-pool die kan worden teruggezet.

Wanneer createMode is Recover, moet sourceResourceId de resource-id van de herstelbare database of herstelbare SQL-pool zijn.

Wanneer het bronabonnement deel uitmaakt van een andere tenant dan het doelabonnement, moet de header 'x-ms-authorization-auxiliary' verificatietoken voor de brontenant bevatten. Zie /azure/azure-resource-manager/management/authenticate-multitenant voor meer informatie over de header 'x-ms-authorization-auxiliary'.
string
useFreeLimit Of de database wel of niet gratis maandelijkse limieten gebruikt. Toegestaan voor één database in een abonnement. bool
zoneRedundant Of deze database nu zone-redundant is, wat betekent dat de replica's van deze database worden verdeeld over meerdere beschikbaarheidszones. bool

DatabasePropertiesKeys

Name Description Value

DatabaseUserIdentity

Name Description Value

Sku

Name Description Value
capacity Capaciteit van de specifieke SKU. int
family Als de service verschillende generaties hardware heeft, voor dezelfde SKU, kan die hier worden vastgelegd. string
name De naam van de SKU, meestal een letter + cijfercode, bijvoorbeeld P3. tekenreeks (vereist)
size Grootte van de specifieke SKU string
tier De laag of editie van de specifieke SKU, bijvoorbeeld Basic, Premium. string

TrackedResourceTags

Name Description Value

Gebruiksvoorbeelden

Terraform-monsters

Een eenvoudig voorbeeld van het implementeren van 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    = ["*"]
}

Een eenvoudig voorbeeld van het implementeren van 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    = ["*"]
}