Partilhar via


Microsoft. Servidores/bases de dados SQL 2023-08-01

Definição de recurso Bicep

O tipo de recurso servidores/bancos de dados pode ser implantado com operações que visam:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte log de alterações.

Formato do recurso

Para criar uma Microsoft. Recurso SQL/servidores/bases de dados, adicione o seguinte Bicep ao seu modelo.

resource symbolicname 'Microsoft.Sql/servers/databases@2023-08-01' = {
  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'
  }
}

Valores de propriedade

Microsoft. SQL/servidores/bases de dados

Name Description Value
identidade A identidade do Azure Active Directory da base de dados. DatabaseIdentity
localização Localização do recurso. string (obrigatório)
name O nome do recurso string (obrigatório)
elemento principal No Bicep, podes especificar o recurso pai para um recurso filho. Você só precisa adicionar essa propriedade quando o recurso filho é declarado fora do recurso pai.

Para obter mais informações, consulte recurso filho fora do recurso pai.
Nome simbólico para recurso do tipo: servidores
properties Propriedades do recurso. DatabaseProperties
sku O banco de dados SKU.

A lista de SKUs pode variar de acordo com a região e a oferta de suporte. Para determinar os SKUs (incluindo o nome, nível/edição, família e capacidade) disponíveis para a sua subscrição numa região Azure, use a API REST Capabilities_ListByLocation ou um dos seguintes comandos:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />PowerShell
Get-AzSqlServerServiceObjective -Location <localização>
````
Sku
tags Etiquetas de recursos Dicionário de nomes e valores de tags. Consulte Tags em modelos

DatabaseIdentity

Name Description Value
tipo O tipo de identidade 'None'
'UserAssigned'
userAssignedIdentities As ids de recurso das identidades atribuídas ao usuário a serem usadas DatabaseIdentityUserAssignedIdentities

DatabaseIdentityUserAssignedIdentities

Name Description Value

DatabaseKey

Name Description Value

DatabaseProperties

Name Description Value
autoPauseDelay Tempo em minutos após o qual o banco de dados é pausado automaticamente. Um valor de -1 significa que a pausa automática está desativada int
availabilityZone Especifica a zona de disponibilidade na qual o banco de dados está fixado. '1'
'2'
'3'
'NoPreference'
catalogCollation Agrupamento do catálogo de metadados. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
agrupamento O agrupamento do banco de dados. cadeia (de caracteres)
createMode Especifica o modo de criação do banco de dados.

Padrão: criação regular de banco de dados.

Copiar: cria um banco de dados como uma cópia de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID do recurso do banco de dados de origem.

Secundário: cria um banco de dados como uma réplica secundária de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID do recurso do banco de dados primário existente.

PointInTimeRestore: Cria um banco de dados restaurando um backup point-in-time de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID de recurso do banco de dados existente e restorePointInTime deve ser especificado.

Recuperação: cria um banco de dados restaurando um backup replicado geograficamente. sourceDatabaseId deve ser especificado como o ID de recurso de banco de dados recuperável a ser restaurado.

Restaurar: cria um banco de dados restaurando um backup de um banco de dados excluído. sourceDatabaseId deve ser especificado. Se sourceDatabaseId for o ID de recurso original do banco de dados, sourceDatabaseDeletionDate deverá ser especificado. Caso contrário, sourceDatabaseId deve ser o ID de recurso de banco de dados descartado restaurável e sourceDatabaseDeletionDate é ignorado. restorePointInTime também pode ser especificado para restaurar a partir de um point-in-time anterior.

RestoreLongTermRetentionBackup: cria um banco de dados restaurando a partir de um cofre de retenção de longo prazo. recoveryServicesRecoveryPointResourceId deve ser especificado como o ID do recurso do ponto de recuperação.

Copy, Secondary e RestoreLongTermRetentionBackup não são suportados para a edição DataWarehouse.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId O identificador de recurso do pool elástico que contém esse banco de dados. cadeia (de caracteres)
encryptionProtector O URI do cofre de chaves azure do banco de dados se estiver configurado com chaves gerenciadas pelo cliente do banco de dados. cadeia (de caracteres)
encryptionProtectorAutoRotation O sinalizador para ativar ou desativar a rotação automática da chave AKV do protetor de criptografia do banco de dados. bool
federatedClientId A ID do cliente usada para o cenário de CMK entre locatários por banco de dados string

Constraints:
Comprimento mínimo = 36
Comprimento máximo = 36
Padrão = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
freeLimitExhaustionBehavior Especifica o comportamento quando os limites livres mensais são esgotados para o banco de dados livre.

AutoPause: O banco de dados será pausado automaticamente após o esgotamento dos limites livres pelo restante do mês.

BillForUsage: O banco de dados continuará on-line após o esgotamento dos limites gratuitos e qualquer excesso de idade será cobrado.
'AutoPause'
'BillOverUsage'
highAvailabilityReplicaCount O número de réplicas secundárias associadas ao banco de dados Business Critical, Premium ou Hyperscale edition que são usadas para fornecer alta disponibilidade. Não aplicável a um banco de dados Hyperscale dentro de um pool elástico. int
isLedgerOn Se esse banco de dados é ou não um banco de dados contábil, o que significa que todas as tabelas no banco de dados são tabelas contábeis. Nota: o valor desta propriedade não pode ser alterado após a criação do banco de dados. bool
keys As ids de recurso das identidades atribuídas ao usuário a serem usadas DatabasePropertiesKeys
licenseType O tipo de licença a ser aplicado para este banco de dados. LicenseIncluded se precisares de licença, ou BasePrice se tiveres licença e fores elegível para a Benefício Híbrido do Azure. 'BasePrice'
'LicenseIncluded'
longTermRetentionBackupResourceId O identificador de recurso do backup de retenção de longo prazo associado à operação de criação desse banco de dados. cadeia (de caracteres)
maintenanceConfigurationId ID de configuração de manutenção atribuído ao banco de dados. Essa configuração define o período em que as atualizações de manutenção ocorrerão. cadeia (de caracteres)
manualCutover Se a substituição manual controlada pelo cliente precisa ou não ser feita durante a operação do Update Database para a camada Hyperscale.

Essa propriedade só é aplicável ao dimensionar o banco de dados da camada Business Critical/General Purpose/Premium/Standard para a camada Hyperscale.

Quando manualCutover é especificado, a operação de dimensionamento aguardará a entrada do usuário para acionar a substituição para o banco de dados Hyperscale.

Para acionar a substituição, forneça o parâmetro 'performCutover' quando a operação Scaling estiver no estado de espera.
bool
maxSizeBytes O tamanho máximo do banco de dados expresso em bytes. int
minCapacity Capacidade mínima que o banco de dados sempre terá alocado, se não pausado int
performCutover Para acionar a substituição manual controlada pelo cliente durante o estado de espera enquanto a operação de dimensionamento está em andamento.

Este parâmetro de propriedade só é aplicável para operações de dimensionamento que são iniciadas junto com o parâmetro 'manualCutover'.

Essa propriedade só é aplicável quando o dimensionamento do banco de dados da camada Business Critical/General Purpose/Premium/Standard para a camada Hyperscale já estiver em andamento.

Quando performCutover for especificado, a operação de dimensionamento acionará a substituição e executará a alteração de função no banco de dados Hyperscale.
bool
preferredEnclaveType Tipo de enclave solicitado no banco de dados, ou seja, enclaves padrão ou VBS. 'Default'
'VBS'
readScale O estado do roteamento somente leitura. Se ativadas, as ligações que tenham a intenção da aplicação definida para apenas leitura na sua cadeia de ligação podem ser encaminhadas para uma réplica secundária apenas de leitura na mesma região. Não aplicável a um banco de dados Hyperscale dentro de um pool elástico. 'Disabled'
'Enabled'
recoverableDatabaseId O identificador de recurso do banco de dados recuperável associado à operação de criação desse banco de dados. cadeia (de caracteres)
recoveryServicesRecoveryPointId O identificador de recurso do ponto de recuperação associado à operação de criação desse banco de dados. cadeia (de caracteres)
requestedBackupStorageRedundancy O tipo de conta de armazenamento a ser usado para armazenar backups para esse banco de dados. 'Geo'
'GeoZone'
'Local'
'Zone'
restorableDroppedDatabaseId O identificador de recurso do banco de dados descartado restaurável associado à operação de criação desse banco de dados. cadeia (de caracteres)
restorePointInTime Especifica o ponto no tempo (formato ISO8601) do banco de dados de origem que será restaurado para criar o novo banco de dados. cadeia (de caracteres)
sampleName O nome do esquema de exemplo a ser aplicado ao criar esse banco de dados. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
secondaryType O tipo secundário do banco de dados, se for secundário. Os valores válidos são Geo, Named e Standby. 'Geo'
'Named'
'Standby'
sourceDatabaseDeletionDate Especifica a hora em que o banco de dados foi excluído. cadeia (de caracteres)
sourceDatabaseId O identificador de recurso do banco de dados de origem associado à operação de criação desse banco de dados. cadeia (de caracteres)
sourceResourceId O identificador de recurso da fonte associada à operação de criação desse banco de dados.

Esta propriedade só é suportada para a edição DataWarehouse e permite restaurar entre subscrições.

Quando sourceResourceId é especificado, sourceDatabaseId, recoverableDatabaseId, restorableDroppedDatabaseId e sourceDatabaseDeletionDate não devem ser especificados e CreateMode deve ser PointInTimeRestore, Restore ou Recover.

Quando createMode é PointInTimeRestore, sourceResourceId deve ser a ID do recurso do banco de dados existente ou do pool sql existente, e restorePointInTime deve ser especificado.

Quando createMode é Restore, sourceResourceId deve ser a ID de recurso do banco de dados descartado restaurável ou do pool sql descartado restaurável.

Quando createMode é Recover, sourceResourceId deve ser o ID de recurso do banco de dados recuperável ou do pool sql recuperável.

Quando a assinatura de origem pertence a um locatário diferente da assinatura de destino, o cabeçalho "x-ms-authorization-auxiliary" deve conter token de autenticação para o locatário de origem. Para obter mais detalhes sobre o cabeçalho "x-ms-authorization-auxiliary", consulte /azure/azure-resource-manager/management/authenticate-multi-tenant
cadeia (de caracteres)
useFreeLimit Se a base de dados utiliza ou não limites mensais gratuitos. Permitido em um banco de dados em uma assinatura. bool
zoneRedundant Se esse banco de dados é ou não redundante de zona, o que significa que as réplicas desse banco de dados serão espalhadas por várias zonas de disponibilidade. bool

DatabasePropertiesKeys

Name Description Value

DatabaseUserIdentity

Name Description Value

Sku

Name Description Value
capacidade Capacidade do SKU específico. int
family Se o serviço tiver diferentes gerações de hardware, para o mesmo SKU, isso pode ser capturado aqui. cadeia (de caracteres)
name O nome do SKU, normalmente, uma letra + código numérico, por exemplo, P3. string (obrigatório)
size Tamanho do SKU específico cadeia (de caracteres)
escalão O nível ou edição do SKU específico, por exemplo, Basic, Premium. cadeia (de caracteres)

TrackedResourceTags

Name Description Value

Exemplos de uso

Amostras de Bicep

Um exemplo básico de implantação do Banco de Dados MS SQL.

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

Os seguintes Azure Módulos Verificados podem ser usados para implementar este tipo de recurso.

Módulo Description
Base de Dados SQL do Azure AVM Resource Module for Base de Dados SQL do Azure

Azure Quickstart Samples

Os seguintes modelos Azure Quickstart contêm Bicep exemplos para implementar este tipo de recurso.

Ficheiro Bicep Description
Azure SQL Server com Auditoria escrita para Log Analytics Este modelo permite-lhe implementar um servidor SQL do Azure com Auditoria ativada para escrever registos de auditoria no Log Analytics (espaço de trabalho OMS)
Criar um SQL Server e Base de Dados Este modelo permite que você crie o Banco de Dados SQL e o Servidor.
Pool SQL dedicado com encriptação transparente Cria um SQL Server e um pool SQL dedicado (anteriormente SQL DW) com Encriptação de Dados Transparente.
Implementar a análise desportiva na arquitetura Azure Cria uma conta de armazenamento Azure com ADLS Gen 2 ativado, uma instância do Azure Data Factory com serviços ligados para a conta de armazenamento (e a Base de Dados SQL do Azure se implementada) e uma instância do Azure Databricks. A identidade do AAD para o usuário que implanta o modelo e a identidade gerenciada para a instância do ADF receberão a função de Colaborador de Dados de Blob de Armazenamento na conta de armazenamento. Existem também opções para implementar uma instância do Azure Key Vault, uma Base de Dados SQL do Azure e um Azure Event Hub (para casos de uso em streaming). Quando um Azure Key Vault é implementado, a identidade gerida pela fábrica de dados e a identidade AAD do utilizador que implementa o template recebem o papel de Utilizador Key Vault Secrets.
Endpoint privado Este modelo mostra como criar um endpoint privado apontando para o Azure SQL Server
Provisionar uma Aplicação Web com uma Base de Dados SQL Este modelo provisiona um Aplicativo Web, um Banco de Dados SQL, configurações de Dimensionamento Automático, regras de Alerta e Informações sobre Aplicativos. Configura uma cadeia de ligação na aplicação web para a base de dados.
Sonarqube Docker Web App em Linux com SQL do Azure Este modelo implementa o Sonarqube num contentor Linux de aplicação web do Serviço de Aplicações do Azure, usando a imagem oficial do Sonarqube e suportado por um Azure SQL Server.
Aplicação Web com Identidade Gerida, SQL Server e ΑΙ Exemplo simples para implementar infraestrutura Azure para aplicação + dados + identidade gerida + monitorização

Definição de recurso de modelo ARM

O tipo de recurso servidores/bancos de dados pode ser implantado com operações que visam:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte log de alterações.

Formato do recurso

Para criar uma Microsoft. Sql/servidores/bases de dados, adicione o seguinte JSON ao seu modelo.

{
  "type": "Microsoft.Sql/servers/databases",
  "apiVersion": "2023-08-01",
  "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"
  }
}

Valores de propriedade

Microsoft. SQL/servidores/bases de dados

Name Description Value
apiVersion A versão api '2023-08-01'
identidade A identidade do Azure Active Directory da base de dados. DatabaseIdentity
localização Localização do recurso. string (obrigatório)
name O nome do recurso string (obrigatório)
properties Propriedades do recurso. DatabaseProperties
sku O banco de dados SKU.

A lista de SKUs pode variar de acordo com a região e a oferta de suporte. Para determinar os SKUs (incluindo o nome, nível/edição, família e capacidade) disponíveis para a sua subscrição numa região Azure, use a API REST Capabilities_ListByLocation ou um dos seguintes comandos:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />PowerShell
Get-AzSqlServerServiceObjective -Location <localização>
````
Sku
tags Etiquetas de recursos Dicionário de nomes e valores de tags. Consulte Tags em modelos
tipo O tipo de recurso 'Microsoft. Sql/servidores/bases de dados'

DatabaseIdentity

Name Description Value
tipo O tipo de identidade 'None'
'UserAssigned'
userAssignedIdentities As ids de recurso das identidades atribuídas ao usuário a serem usadas DatabaseIdentityUserAssignedIdentities

DatabaseIdentityUserAssignedIdentities

Name Description Value

DatabaseKey

Name Description Value

DatabaseProperties

Name Description Value
autoPauseDelay Tempo em minutos após o qual o banco de dados é pausado automaticamente. Um valor de -1 significa que a pausa automática está desativada int
availabilityZone Especifica a zona de disponibilidade na qual o banco de dados está fixado. '1'
'2'
'3'
'NoPreference'
catalogCollation Agrupamento do catálogo de metadados. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
agrupamento O agrupamento do banco de dados. cadeia (de caracteres)
createMode Especifica o modo de criação do banco de dados.

Padrão: criação regular de banco de dados.

Copiar: cria um banco de dados como uma cópia de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID do recurso do banco de dados de origem.

Secundário: cria um banco de dados como uma réplica secundária de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID do recurso do banco de dados primário existente.

PointInTimeRestore: Cria um banco de dados restaurando um backup point-in-time de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID de recurso do banco de dados existente e restorePointInTime deve ser especificado.

Recuperação: cria um banco de dados restaurando um backup replicado geograficamente. sourceDatabaseId deve ser especificado como o ID de recurso de banco de dados recuperável a ser restaurado.

Restaurar: cria um banco de dados restaurando um backup de um banco de dados excluído. sourceDatabaseId deve ser especificado. Se sourceDatabaseId for o ID de recurso original do banco de dados, sourceDatabaseDeletionDate deverá ser especificado. Caso contrário, sourceDatabaseId deve ser o ID de recurso de banco de dados descartado restaurável e sourceDatabaseDeletionDate é ignorado. restorePointInTime também pode ser especificado para restaurar a partir de um point-in-time anterior.

RestoreLongTermRetentionBackup: cria um banco de dados restaurando a partir de um cofre de retenção de longo prazo. recoveryServicesRecoveryPointResourceId deve ser especificado como o ID do recurso do ponto de recuperação.

Copy, Secondary e RestoreLongTermRetentionBackup não são suportados para a edição DataWarehouse.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId O identificador de recurso do pool elástico que contém esse banco de dados. cadeia (de caracteres)
encryptionProtector O URI do cofre de chaves azure do banco de dados se estiver configurado com chaves gerenciadas pelo cliente do banco de dados. cadeia (de caracteres)
encryptionProtectorAutoRotation O sinalizador para ativar ou desativar a rotação automática da chave AKV do protetor de criptografia do banco de dados. bool
federatedClientId A ID do cliente usada para o cenário de CMK entre locatários por banco de dados string

Constraints:
Comprimento mínimo = 36
Comprimento máximo = 36
Padrão = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
freeLimitExhaustionBehavior Especifica o comportamento quando os limites livres mensais são esgotados para o banco de dados livre.

AutoPause: O banco de dados será pausado automaticamente após o esgotamento dos limites livres pelo restante do mês.

BillForUsage: O banco de dados continuará on-line após o esgotamento dos limites gratuitos e qualquer excesso de idade será cobrado.
'AutoPause'
'BillOverUsage'
highAvailabilityReplicaCount O número de réplicas secundárias associadas ao banco de dados Business Critical, Premium ou Hyperscale edition que são usadas para fornecer alta disponibilidade. Não aplicável a um banco de dados Hyperscale dentro de um pool elástico. int
isLedgerOn Se esse banco de dados é ou não um banco de dados contábil, o que significa que todas as tabelas no banco de dados são tabelas contábeis. Nota: o valor desta propriedade não pode ser alterado após a criação do banco de dados. bool
keys As ids de recurso das identidades atribuídas ao usuário a serem usadas DatabasePropertiesKeys
licenseType O tipo de licença a ser aplicado para este banco de dados. LicenseIncluded se precisares de licença, ou BasePrice se tiveres licença e fores elegível para a Benefício Híbrido do Azure. 'BasePrice'
'LicenseIncluded'
longTermRetentionBackupResourceId O identificador de recurso do backup de retenção de longo prazo associado à operação de criação desse banco de dados. cadeia (de caracteres)
maintenanceConfigurationId ID de configuração de manutenção atribuído ao banco de dados. Essa configuração define o período em que as atualizações de manutenção ocorrerão. cadeia (de caracteres)
manualCutover Se a substituição manual controlada pelo cliente precisa ou não ser feita durante a operação do Update Database para a camada Hyperscale.

Essa propriedade só é aplicável ao dimensionar o banco de dados da camada Business Critical/General Purpose/Premium/Standard para a camada Hyperscale.

Quando manualCutover é especificado, a operação de dimensionamento aguardará a entrada do usuário para acionar a substituição para o banco de dados Hyperscale.

Para acionar a substituição, forneça o parâmetro 'performCutover' quando a operação Scaling estiver no estado de espera.
bool
maxSizeBytes O tamanho máximo do banco de dados expresso em bytes. int
minCapacity Capacidade mínima que o banco de dados sempre terá alocado, se não pausado int
performCutover Para acionar a substituição manual controlada pelo cliente durante o estado de espera enquanto a operação de dimensionamento está em andamento.

Este parâmetro de propriedade só é aplicável para operações de dimensionamento que são iniciadas junto com o parâmetro 'manualCutover'.

Essa propriedade só é aplicável quando o dimensionamento do banco de dados da camada Business Critical/General Purpose/Premium/Standard para a camada Hyperscale já estiver em andamento.

Quando performCutover for especificado, a operação de dimensionamento acionará a substituição e executará a alteração de função no banco de dados Hyperscale.
bool
preferredEnclaveType Tipo de enclave solicitado no banco de dados, ou seja, enclaves padrão ou VBS. 'Default'
'VBS'
readScale O estado do roteamento somente leitura. Se ativadas, as ligações que tenham a intenção da aplicação definida para apenas leitura na sua cadeia de ligação podem ser encaminhadas para uma réplica secundária apenas de leitura na mesma região. Não aplicável a um banco de dados Hyperscale dentro de um pool elástico. 'Disabled'
'Enabled'
recoverableDatabaseId O identificador de recurso do banco de dados recuperável associado à operação de criação desse banco de dados. cadeia (de caracteres)
recoveryServicesRecoveryPointId O identificador de recurso do ponto de recuperação associado à operação de criação desse banco de dados. cadeia (de caracteres)
requestedBackupStorageRedundancy O tipo de conta de armazenamento a ser usado para armazenar backups para esse banco de dados. 'Geo'
'GeoZone'
'Local'
'Zone'
restorableDroppedDatabaseId O identificador de recurso do banco de dados descartado restaurável associado à operação de criação desse banco de dados. cadeia (de caracteres)
restorePointInTime Especifica o ponto no tempo (formato ISO8601) do banco de dados de origem que será restaurado para criar o novo banco de dados. cadeia (de caracteres)
sampleName O nome do esquema de exemplo a ser aplicado ao criar esse banco de dados. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
secondaryType O tipo secundário do banco de dados, se for secundário. Os valores válidos são Geo, Named e Standby. 'Geo'
'Named'
'Standby'
sourceDatabaseDeletionDate Especifica a hora em que o banco de dados foi excluído. cadeia (de caracteres)
sourceDatabaseId O identificador de recurso do banco de dados de origem associado à operação de criação desse banco de dados. cadeia (de caracteres)
sourceResourceId O identificador de recurso da fonte associada à operação de criação desse banco de dados.

Esta propriedade só é suportada para a edição DataWarehouse e permite restaurar entre subscrições.

Quando sourceResourceId é especificado, sourceDatabaseId, recoverableDatabaseId, restorableDroppedDatabaseId e sourceDatabaseDeletionDate não devem ser especificados e CreateMode deve ser PointInTimeRestore, Restore ou Recover.

Quando createMode é PointInTimeRestore, sourceResourceId deve ser a ID do recurso do banco de dados existente ou do pool sql existente, e restorePointInTime deve ser especificado.

Quando createMode é Restore, sourceResourceId deve ser a ID de recurso do banco de dados descartado restaurável ou do pool sql descartado restaurável.

Quando createMode é Recover, sourceResourceId deve ser o ID de recurso do banco de dados recuperável ou do pool sql recuperável.

Quando a assinatura de origem pertence a um locatário diferente da assinatura de destino, o cabeçalho "x-ms-authorization-auxiliary" deve conter token de autenticação para o locatário de origem. Para obter mais detalhes sobre o cabeçalho "x-ms-authorization-auxiliary", consulte /azure/azure-resource-manager/management/authenticate-multi-tenant
cadeia (de caracteres)
useFreeLimit Se a base de dados utiliza ou não limites mensais gratuitos. Permitido em um banco de dados em uma assinatura. bool
zoneRedundant Se esse banco de dados é ou não redundante de zona, o que significa que as réplicas desse banco de dados serão espalhadas por várias zonas de disponibilidade. bool

DatabasePropertiesKeys

Name Description Value

DatabaseUserIdentity

Name Description Value

Sku

Name Description Value
capacidade Capacidade do SKU específico. int
family Se o serviço tiver diferentes gerações de hardware, para o mesmo SKU, isso pode ser capturado aqui. cadeia (de caracteres)
name O nome do SKU, normalmente, uma letra + código numérico, por exemplo, P3. string (obrigatório)
size Tamanho do SKU específico cadeia (de caracteres)
escalão O nível ou edição do SKU específico, por exemplo, Basic, Premium. cadeia (de caracteres)

TrackedResourceTags

Name Description Value

Exemplos de uso

Modelos de Início Rápido do Azure

Os seguintes modelos Azure Quickstart implementam este tipo de recurso.

Template Description
Azure SQL Server com Auditoria escrita para Log Analytics

Implementar para Azure
Este modelo permite-lhe implementar um servidor SQL do Azure com Auditoria ativada para escrever registos de auditoria no Log Analytics (espaço de trabalho OMS)
Criar um SQL Server e Base de Dados

Implementar para Azure
Este modelo permite que você crie o Banco de Dados SQL e o Servidor.
Pool SQL dedicado com encriptação transparente

Implementar para Azure
Cria um SQL Server e um pool SQL dedicado (anteriormente SQL DW) com Encriptação de Dados Transparente.
Implementar um novo SQL Elastic Pool

Implementar para Azure
Este modelo permite-lhe implementar um novo SQL Elastic Pool com o seu novo SQL Server associado e novas bases de dados SQL para lhe atribuir.
Implementar a análise desportiva na arquitetura Azure

Implementar para Azure
Cria uma conta de armazenamento Azure com ADLS Gen 2 ativado, uma instância do Azure Data Factory com serviços ligados para a conta de armazenamento (e a Base de Dados SQL do Azure se implementada) e uma instância do Azure Databricks. A identidade do AAD para o usuário que implanta o modelo e a identidade gerenciada para a instância do ADF receberão a função de Colaborador de Dados de Blob de Armazenamento na conta de armazenamento. Existem também opções para implementar uma instância do Azure Key Vault, uma Base de Dados SQL do Azure e um Azure Event Hub (para casos de uso em streaming). Quando um Azure Key Vault é implementado, a identidade gerida pela fábrica de dados e a identidade AAD do utilizador que implementa o template recebem o papel de Utilizador Key Vault Secrets.
HDInsight com base de dados personalizada Ambari + Hive Metastore em VNET

Implementar para Azure
Este modelo permite criar um cluster HDInsight em uma rede virtual existente com um novo banco de dados SQL que serve como um banco de dados Ambari personalizado e um Metastore do Hive. Você deve ter um SQL Sever, uma conta de armazenamento e uma VNET existentes.
Endpoint privado

Implementar para Azure
Este modelo mostra como criar um endpoint privado apontando para o Azure SQL Server
Provisionar uma Aplicação Web com uma Base de Dados SQL

Implementar para Azure
Este modelo provisiona um Aplicativo Web, um Banco de Dados SQL, configurações de Dimensionamento Automático, regras de Alerta e Informações sobre Aplicativos. Configura uma cadeia de ligação na aplicação web para a base de dados.
Ambiente de Trabalho Remoto Serviços com Alta Disponibilidade

Implementar para Azure
Este código de exemplo do Modelo ARM irá implementar um laboratório Ambiente de Trabalho Remoto Services 2019 Session Collection com alta disponibilidade. O objetivo é implementar uma solução totalmente redundante e altamente disponível para Ambiente de Trabalho Remoto Services, utilizando o Windows Server 2019.
Sonarqube Docker Web App em Linux com SQL do Azure

Implementar para Azure
Este modelo implementa o Sonarqube num contentor Linux de aplicação web do Serviço de Aplicações do Azure, usando a imagem oficial do Sonarqube e suportado por um Azure SQL Server.
Aplicação Web com Identidade Gerida, SQL Server e ΑΙ

Implementar para Azure
Exemplo simples para implementar infraestrutura Azure para aplicação + dados + identidade gerida + monitorização
WebApp a consumir um SQL do Azure Private Endpoint

Implementar para Azure
Este modelo mostra como criar uma aplicação Web que consome um endpoint privado apontando para o Azure SQL Server

Definição de recursos Terraform (provedor AzAPI)

O tipo de recurso servidores/bancos de dados pode ser implantado com operações que visam:

  • Grupos de recursos

Para obter uma lista de propriedades alteradas em cada versão da API, consulte log de alterações.

Formato do recurso

Para criar uma Microsoft. Recurso SQL/servidores/bases de dados, adicione o seguinte Terraform ao seu modelo.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Sql/servers/databases@2023-08-01"
  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"
    }
  }
}

Valores de propriedade

Microsoft. SQL/servidores/bases de dados

Name Description Value
identidade A identidade do Azure Active Directory da base de dados. DatabaseIdentity
localização Localização do recurso. string (obrigatório)
name O nome do recurso string (obrigatório)
parent_id A ID do recurso que é o pai para este recurso. ID para recurso do tipo: servidores
properties Propriedades do recurso. DatabaseProperties
sku O banco de dados SKU.

A lista de SKUs pode variar de acordo com a região e a oferta de suporte. Para determinar os SKUs (incluindo o nome, nível/edição, família e capacidade) disponíveis para a sua subscrição numa região Azure, use a API REST Capabilities_ListByLocation ou um dos seguintes comandos:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />PowerShell
Get-AzSqlServerServiceObjective -Location <localização>
````
Sku
tags Etiquetas de recursos Dicionário de nomes e valores de tags.
tipo O tipo de recurso "Microsoft. Sql/servidores/databases@2023-08-01"

DatabaseIdentity

Name Description Value
tipo O tipo de identidade 'None'
'UserAssigned'
userAssignedIdentities As ids de recurso das identidades atribuídas ao usuário a serem usadas DatabaseIdentityUserAssignedIdentities

DatabaseIdentityUserAssignedIdentities

Name Description Value

DatabaseKey

Name Description Value

DatabaseProperties

Name Description Value
autoPauseDelay Tempo em minutos após o qual o banco de dados é pausado automaticamente. Um valor de -1 significa que a pausa automática está desativada int
availabilityZone Especifica a zona de disponibilidade na qual o banco de dados está fixado. '1'
'2'
'3'
'NoPreference'
catalogCollation Agrupamento do catálogo de metadados. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
agrupamento O agrupamento do banco de dados. cadeia (de caracteres)
createMode Especifica o modo de criação do banco de dados.

Padrão: criação regular de banco de dados.

Copiar: cria um banco de dados como uma cópia de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID do recurso do banco de dados de origem.

Secundário: cria um banco de dados como uma réplica secundária de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID do recurso do banco de dados primário existente.

PointInTimeRestore: Cria um banco de dados restaurando um backup point-in-time de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID de recurso do banco de dados existente e restorePointInTime deve ser especificado.

Recuperação: cria um banco de dados restaurando um backup replicado geograficamente. sourceDatabaseId deve ser especificado como o ID de recurso de banco de dados recuperável a ser restaurado.

Restaurar: cria um banco de dados restaurando um backup de um banco de dados excluído. sourceDatabaseId deve ser especificado. Se sourceDatabaseId for o ID de recurso original do banco de dados, sourceDatabaseDeletionDate deverá ser especificado. Caso contrário, sourceDatabaseId deve ser o ID de recurso de banco de dados descartado restaurável e sourceDatabaseDeletionDate é ignorado. restorePointInTime também pode ser especificado para restaurar a partir de um point-in-time anterior.

RestoreLongTermRetentionBackup: cria um banco de dados restaurando a partir de um cofre de retenção de longo prazo. recoveryServicesRecoveryPointResourceId deve ser especificado como o ID do recurso do ponto de recuperação.

Copy, Secondary e RestoreLongTermRetentionBackup não são suportados para a edição DataWarehouse.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId O identificador de recurso do pool elástico que contém esse banco de dados. cadeia (de caracteres)
encryptionProtector O URI do cofre de chaves azure do banco de dados se estiver configurado com chaves gerenciadas pelo cliente do banco de dados. cadeia (de caracteres)
encryptionProtectorAutoRotation O sinalizador para ativar ou desativar a rotação automática da chave AKV do protetor de criptografia do banco de dados. bool
federatedClientId A ID do cliente usada para o cenário de CMK entre locatários por banco de dados string

Constraints:
Comprimento mínimo = 36
Comprimento máximo = 36
Padrão = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
freeLimitExhaustionBehavior Especifica o comportamento quando os limites livres mensais são esgotados para o banco de dados livre.

AutoPause: O banco de dados será pausado automaticamente após o esgotamento dos limites livres pelo restante do mês.

BillForUsage: O banco de dados continuará on-line após o esgotamento dos limites gratuitos e qualquer excesso de idade será cobrado.
'AutoPause'
'BillOverUsage'
highAvailabilityReplicaCount O número de réplicas secundárias associadas ao banco de dados Business Critical, Premium ou Hyperscale edition que são usadas para fornecer alta disponibilidade. Não aplicável a um banco de dados Hyperscale dentro de um pool elástico. int
isLedgerOn Se esse banco de dados é ou não um banco de dados contábil, o que significa que todas as tabelas no banco de dados são tabelas contábeis. Nota: o valor desta propriedade não pode ser alterado após a criação do banco de dados. bool
keys As ids de recurso das identidades atribuídas ao usuário a serem usadas DatabasePropertiesKeys
licenseType O tipo de licença a ser aplicado para este banco de dados. LicenseIncluded se precisares de licença, ou BasePrice se tiveres licença e fores elegível para a Benefício Híbrido do Azure. 'BasePrice'
'LicenseIncluded'
longTermRetentionBackupResourceId O identificador de recurso do backup de retenção de longo prazo associado à operação de criação desse banco de dados. cadeia (de caracteres)
maintenanceConfigurationId ID de configuração de manutenção atribuído ao banco de dados. Essa configuração define o período em que as atualizações de manutenção ocorrerão. cadeia (de caracteres)
manualCutover Se a substituição manual controlada pelo cliente precisa ou não ser feita durante a operação do Update Database para a camada Hyperscale.

Essa propriedade só é aplicável ao dimensionar o banco de dados da camada Business Critical/General Purpose/Premium/Standard para a camada Hyperscale.

Quando manualCutover é especificado, a operação de dimensionamento aguardará a entrada do usuário para acionar a substituição para o banco de dados Hyperscale.

Para acionar a substituição, forneça o parâmetro 'performCutover' quando a operação Scaling estiver no estado de espera.
bool
maxSizeBytes O tamanho máximo do banco de dados expresso em bytes. int
minCapacity Capacidade mínima que o banco de dados sempre terá alocado, se não pausado int
performCutover Para acionar a substituição manual controlada pelo cliente durante o estado de espera enquanto a operação de dimensionamento está em andamento.

Este parâmetro de propriedade só é aplicável para operações de dimensionamento que são iniciadas junto com o parâmetro 'manualCutover'.

Essa propriedade só é aplicável quando o dimensionamento do banco de dados da camada Business Critical/General Purpose/Premium/Standard para a camada Hyperscale já estiver em andamento.

Quando performCutover for especificado, a operação de dimensionamento acionará a substituição e executará a alteração de função no banco de dados Hyperscale.
bool
preferredEnclaveType Tipo de enclave solicitado no banco de dados, ou seja, enclaves padrão ou VBS. 'Default'
'VBS'
readScale O estado do roteamento somente leitura. Se ativadas, as ligações que tenham a intenção da aplicação definida para apenas leitura na sua cadeia de ligação podem ser encaminhadas para uma réplica secundária apenas de leitura na mesma região. Não aplicável a um banco de dados Hyperscale dentro de um pool elástico. 'Disabled'
'Enabled'
recoverableDatabaseId O identificador de recurso do banco de dados recuperável associado à operação de criação desse banco de dados. cadeia (de caracteres)
recoveryServicesRecoveryPointId O identificador de recurso do ponto de recuperação associado à operação de criação desse banco de dados. cadeia (de caracteres)
requestedBackupStorageRedundancy O tipo de conta de armazenamento a ser usado para armazenar backups para esse banco de dados. 'Geo'
'GeoZone'
'Local'
'Zone'
restorableDroppedDatabaseId O identificador de recurso do banco de dados descartado restaurável associado à operação de criação desse banco de dados. cadeia (de caracteres)
restorePointInTime Especifica o ponto no tempo (formato ISO8601) do banco de dados de origem que será restaurado para criar o novo banco de dados. cadeia (de caracteres)
sampleName O nome do esquema de exemplo a ser aplicado ao criar esse banco de dados. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
secondaryType O tipo secundário do banco de dados, se for secundário. Os valores válidos são Geo, Named e Standby. 'Geo'
'Named'
'Standby'
sourceDatabaseDeletionDate Especifica a hora em que o banco de dados foi excluído. cadeia (de caracteres)
sourceDatabaseId O identificador de recurso do banco de dados de origem associado à operação de criação desse banco de dados. cadeia (de caracteres)
sourceResourceId O identificador de recurso da fonte associada à operação de criação desse banco de dados.

Esta propriedade só é suportada para a edição DataWarehouse e permite restaurar entre subscrições.

Quando sourceResourceId é especificado, sourceDatabaseId, recoverableDatabaseId, restorableDroppedDatabaseId e sourceDatabaseDeletionDate não devem ser especificados e CreateMode deve ser PointInTimeRestore, Restore ou Recover.

Quando createMode é PointInTimeRestore, sourceResourceId deve ser a ID do recurso do banco de dados existente ou do pool sql existente, e restorePointInTime deve ser especificado.

Quando createMode é Restore, sourceResourceId deve ser a ID de recurso do banco de dados descartado restaurável ou do pool sql descartado restaurável.

Quando createMode é Recover, sourceResourceId deve ser o ID de recurso do banco de dados recuperável ou do pool sql recuperável.

Quando a assinatura de origem pertence a um locatário diferente da assinatura de destino, o cabeçalho "x-ms-authorization-auxiliary" deve conter token de autenticação para o locatário de origem. Para obter mais detalhes sobre o cabeçalho "x-ms-authorization-auxiliary", consulte /azure/azure-resource-manager/management/authenticate-multi-tenant
cadeia (de caracteres)
useFreeLimit Se a base de dados utiliza ou não limites mensais gratuitos. Permitido em um banco de dados em uma assinatura. bool
zoneRedundant Se esse banco de dados é ou não redundante de zona, o que significa que as réplicas desse banco de dados serão espalhadas por várias zonas de disponibilidade. bool

DatabasePropertiesKeys

Name Description Value

DatabaseUserIdentity

Name Description Value

Sku

Name Description Value
capacidade Capacidade do SKU específico. int
family Se o serviço tiver diferentes gerações de hardware, para o mesmo SKU, isso pode ser capturado aqui. cadeia (de caracteres)
name O nome do SKU, normalmente, uma letra + código numérico, por exemplo, P3. string (obrigatório)
size Tamanho do SKU específico cadeia (de caracteres)
escalão O nível ou edição do SKU específico, por exemplo, Basic, Premium. cadeia (de caracteres)

TrackedResourceTags

Name Description Value

Exemplos de uso

Amostras Terraform

Um exemplo básico de implantação do Banco de Dados MS SQL.

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    = ["*"]
}

Um exemplo básico de implantação do Banco de Dados MS SQL.

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    = ["*"]
}