Bagikan melalui


Server/database Microsoft.Sql

Definisi sumber daya Bicep

Jenis sumber daya server/database dapat disebarkan dengan operasi yang menargetkan:

  • Grup sumber daya - Lihat perintah penyebaran grup sumber daya

Untuk daftar properti yang diubah di setiap versi API, lihat mengubah log.

Format sumber daya

Untuk membuat sumber daya Microsoft.Sql/servers/databases, tambahkan Bicep berikut ke templat Anda.

resource symbolicname 'Microsoft.Sql/servers/databases@2024-11-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'
  }
}

Nilai Properti

Microsoft.Sql/servers/databases

Name Description Value
identitas Identitas Azure Active Directory database. DatabaseIdentity
lokasi Lokasi sumber daya. string (diperlukan)
name Nama sumber daya string (diperlukan)
induk Di Bicep, Anda dapat menentukan sumber daya induk untuk sumber daya anak. Anda hanya perlu menambahkan properti ini ketika sumber daya anak dideklarasikan di luar sumber daya induk.

Untuk informasi selengkapnya, lihat sumber daya Turunan di luar sumber daya induk.
Nama simbolis untuk sumber daya jenis: server
properties Properti sumber daya. DatabaseProperties
sku SKU database.

Daftar SKU dapat bervariasi menurut wilayah dan penawaran dukungan. Untuk menentukan SKU (termasuk nama SKU, tingkat/edisi, keluarga, dan kapasitas) yang tersedia untuk langganan Anda di wilayah Azure, gunakan Capabilities_ListByLocation REST API atau salah satu perintah berikut:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />Cangkang Kekuatan
<lokasi Get-AzSqlServerServiceObjective -Location>
````
Sku
tags Tag sumber daya Kamus nama dan nilai tag. Lihat Tag dalam templat

DatabaseIdentity

Name Description Value
jenis Jenis identitas 'None'
'UserAssigned'
userAssignedIdentities Id sumber daya dari identitas yang ditetapkan pengguna untuk digunakan DatabaseIdentityUserAssignedIdentities

DatabaseIdentityUserAssignedIdentities

Name Description Value

DatabaseKey

Name Description Value

DatabaseProperties

Name Description Value
autoPauseDelay Waktu dalam menit setelah database dijeda secara otomatis. Nilai -1 berarti jeda otomatis dinonaktifkan int
availabilityZone Menentukan zona ketersediaan tempat database disematkan. '1'
'2'
'3'
'NoPreference'
catalogCollation Kolate katalog metadata. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
kolase Kolatasi database. string
createMode Menentukan mode pembuatan database.

Default: pembuatan database reguler.

Salin: membuat database sebagai salinan database yang sudah ada. sourceDatabaseId harus ditentukan sebagai ID sumber daya database sumber.

Sekunder: membuat database sebagai replika sekunder dari database yang ada. sourceDatabaseId harus ditentukan sebagai ID sumber daya dari database utama yang ada.

PointInTimeRestore: Membuat database dengan memulihkan cadangan titik waktu database yang sudah ada. sourceDatabaseId harus ditentukan sebagai ID sumber daya database yang ada, dan restorePointInTime harus ditentukan.

Pemulihan: Membuat database dengan memulihkan cadangan yang direplikasi secara geografis. sourceDatabaseId harus ditentukan sebagai ID sumber daya database yang dapat dipulihkan untuk dipulihkan.

Pemulihan: Membuat database dengan memulihkan cadangan database yang dihapus. sourceDatabaseId harus ditentukan. Jika sourceDatabaseId adalah ID sumber daya asli database, maka sourceDatabaseDeletionDate harus ditentukan. Jika tidak, sourceDatabaseId harus menjadi ID sumber daya database yang dihilangkan dan sourceDatabaseDeletionDate yang dapat diabaikan. restorePointInTime juga dapat ditentukan untuk memulihkan dari titik waktu sebelumnya.

RestoreLongTermRetentionBackup: Membuat database dengan memulihkan dari vault retensi jangka panjang. recoveryServicesRecoveryPointResourceId harus ditentukan sebagai ID sumber daya titik pemulihan.

Copy, Secondary, dan RestoreLongTermRetentionBackup tidak didukung untuk edisi DataWarehouse.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId Pengidentifikasi sumber daya kumpulan elastis yang berisi database ini. string
encryptionProtector URI brankas kunci azure database jika dikonfigurasi dengan per Kunci Terkelola Pelanggan Database. string
encryptionProtectorAutoRotation Bendera untuk mengaktifkan atau menonaktifkan rotasi otomatis kunci AKV pelindung enkripsi database. bool
federatedClientId Id Klien yang digunakan untuk skenario CMK lintas penyewa per database string

Constraints:
Panjang min = 36
Panjang maksimum = 36
Pola = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
freeLimitExhaustionBehavior Menentukan perilaku ketika batas gratis bulanan habis untuk database gratis.

Jeda Otomatis: Database akan dijeda secara otomatis setelah kelelahan batas gratis selama sisa bulan.

BillForUsage: Database akan terus online setelah kelelahan batas gratis dan kelebihan biaya apa pun akan ditagih.
'AutoPause'
'BillOverUsage'
highAvailabilityReplicaCount Jumlah replika sekunder yang terkait dengan database edisi Business Critical, Premium, atau Hyperscale yang digunakan untuk memberikan ketersediaan tinggi. Tidak berlaku untuk database Hyperscale dalam kumpulan elastis. int
isLedgerOn Apakah database ini adalah database ledger atau tidak, yang berarti semua tabel dalam database adalah tabel ledger. Catatan: nilai properti ini tidak dapat diubah setelah database dibuat. bool
keys Id sumber daya dari identitas yang ditetapkan pengguna untuk digunakan DatabasePropertiesKeys
licenseType Jenis lisensi yang akan diterapkan untuk database ini. LicenseIncluded jika Anda memerlukan lisensi, atau BasePrice jika Anda memiliki lisensi dan memenuhi syarat untuk Azure Hybrid Benefit. 'BasePrice'
'LicenseIncluded'
longTermRetentionBackupResourceId Pengidentifikasi sumber daya cadangan retensi jangka panjang yang terkait dengan operasi pembuatan database ini. string
maintenanceConfigurationId Id konfigurasi pemeliharaan yang ditetapkan ke database. Konfigurasi ini menentukan periode kapan pembaruan pemeliharaan akan terjadi. string
manualCutover Apakah cutover manual yang dikontrol pelanggan perlu dilakukan selama operasi Pembaruan Database ke tingkat Hyperscale atau tidak.

Properti ini hanya berlaku saat menskalakan database dari tingkat Business Critical/General Purpose/Premium/Standard ke tingkat Hyperscale.

Ketika manualCutover ditentukan, operasi penskalaan akan menunggu input pengguna untuk memicu cutover ke database Hyperscale.

Untuk memicu cutover, harap berikan parameter 'performCutover' saat operasi Penskalaan dalam status Menunggu.
bool
maxSizeBytes Ukuran maksimum database yang dinyatakan dalam byte. int
minCapacity Kapasitas minimal yang akan selalu dialokasikan database, jika tidak dijeda int
performCutover Untuk memicu cutover manual yang dikontrol pelanggan selama status tunggu saat operasi Penskalaan sedang berlangsung.

Parameter properti ini hanya berlaku untuk operasi penskalaan yang dimulai bersama dengan parameter 'manualCutover'.

Properti ini hanya berlaku saat penskalaan database dari tingkat Business Critical/General Purpose/Premium/Standard ke tingkat Hyperscale sudah berlangsung.

Ketika performCutover ditentukan, operasi penskalaan akan memicu cutover dan melakukan perubahan peran ke database Hyperscale.
bool
preferredEnclaveType Jenis enklave yang diminta pada database yaitu enklave Default atau VBS. 'Default'
'VBS'
readScale Status perutean baca-saja. Jika diaktifkan, koneksi yang memiliki niat aplikasi diatur ke readonly dalam string koneksinya dapat dirutekan ke replika sekunder baca-saja di wilayah yang sama. Tidak berlaku untuk database Hyperscale dalam kumpulan elastis. 'Disabled'
'Enabled'
recoverableDatabaseId Pengidentifikasi sumber daya database yang dapat dipulihkan yang terkait dengan operasi pembuatan database ini. string
recoveryServicesRecoveryPointId Pengidentifikasi sumber daya titik pemulihan yang terkait dengan operasi pembuatan database ini. string
requestedBackupStorageRedundancy Jenis akun penyimpanan yang akan digunakan untuk menyimpan cadangan untuk database ini. 'Geo'
'GeoZone'
'Local'
'Zone'
restorableDroppedDatabaseId Pengidentifikasi sumber daya dari database yang dihilangkan yang dapat dihilangkan yang terkait dengan operasi pembuatan database ini. string
restorePointInTime Menentukan titik waktu (format ISO8601) database sumber yang akan dipulihkan untuk membuat database baru. string
sampleName Nama skema sampel yang akan diterapkan saat membuat database ini. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
secondaryType Jenis database sekunder jika merupakan sekunder. Nilai yang valid adalah Geo, Bernama, dan Siaga. 'Geo'
'Named'
'Standby'
sourceDatabaseDeletionDate Menentukan waktu database dihapus. string
sourceDatabaseId Pengidentifikasi sumber daya database sumber yang terkait dengan operasi pembuatan database ini. string
sourceResourceId Pengidentifikasi sumber daya sumber yang terkait dengan operasi pembuatan database ini.

Properti ini hanya didukung untuk edisi DataWarehouse dan memungkinkan pemulihan di seluruh langganan.

Ketika sourceResourceId ditentukan, sourceDatabaseId, recoverableDatabaseId, restorableDroppedDatabaseId dan sourceDatabaseDeletionDate tidak boleh ditentukan dan CreateMode harus PointInTimeRestore, Restore atau Recover.

Ketika createMode adalah PointInTimeRestore, sourceResourceId harus menjadi ID sumber daya database yang ada atau kumpulan sql yang ada, dan restorePointInTime harus ditentukan.

Ketika createMode adalah Restore, sourceResourceId harus menjadi ID sumber daya database yang dihilangkan yang dapat dipulihkan atau kumpulan sql yang dapat dihilangkan kembali.

Ketika createMode adalah Recover, sourceResourceId harus menjadi ID sumber daya database yang dapat dipulihkan atau kumpulan sql yang dapat dipulihkan.

Saat langganan sumber milik penyewa yang berbeda dari langganan target, header "x-ms-authorization-auxiliary" harus berisi token autentikasi untuk penyewa sumber. Untuk detail selengkapnya tentang header "x-ms-authorization-auxiliary" lihat /azure/azure-resource-manager/management/authenticate-multi-tenant
string
useFreeLimit Apakah database menggunakan batas bulanan gratis atau tidak. Diizinkan pada satu database dalam langganan. bool
zoneRedundant Apakah database ini redundan zona atau tidak, yang berarti replika database ini akan tersebar di beberapa zona ketersediaan. bool

DatabasePropertiesKeys

Name Description Value

DatabaseUserIdentity

Name Description Value

Sku

Name Description Value
kapasitas Kapasitas SKU tertentu. int
family Jika layanan memiliki generasi perangkat keras yang berbeda, untuk SKU yang sama, maka itu dapat ditangkap di sini. string
name Nama SKU, biasanya, kode huruf + Angka, misalnya P3. string (diperlukan)
size Ukuran SKU tertentu string
tier Tingkat atau edisi SKU tertentu, misalnya Dasar, Premium. string

TrackedResourceTags

Name Description Value

Contoh Penggunaan

Sampel Bicep

Contoh dasar penerapan 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
  }
}

Modul Terverifikasi Azure

Modul Terverifikasi Azure berikut dapat digunakan untuk menyebarkan jenis sumber daya ini.

Modul Description
Azure SQL Database Modul Sumber Daya AVM untuk Azure SQL Database

Sampel Mulai Cepat Azure

Templat Mulai Cepat Azure berikut ini berisi sampel Bicep untuk menyebarkan jenis sumber daya ini.

File Bisep Description
Azure SQL Server dengan Audit yang ditulis ke Log Analytics Templat ini memungkinkan Anda untuk menyebarkan server Azure SQL dengan Audit diaktifkan untuk menulis log audit ke Analitik Log (ruang kerja OMS)
Membuat SQL Server dan Database Templat ini memungkinkan Anda membuat SQL Database dan Server.
kumpulan SQL Khusus dengan Enkripsi Transparan Membuat SQL Server dan kumpulan SQL Khusus (sebelumnya SQL DW) dengan Enkripsi Data Transparan.
Menyebarkan Analitik Olahraga di Arsitektur Azure Membuat akun penyimpanan Azure dengan ADLS Gen 2 diaktifkan, instans Azure Data Factory dengan layanan tertaut untuk akun penyimpanan (Azure SQL Database jika disebarkan), dan instans Azure Databricks. Identitas AAD untuk pengguna yang menyebarkan templat dan identitas terkelola untuk instans ADF akan diberikan peran Kontributor Data Blob Penyimpanan pada akun penyimpanan. Ada juga opsi untuk menyebarkan instans Azure Key Vault, Azure SQL Database, dan Azure Event Hub (untuk kasus penggunaan streaming). Saat Azure Key Vault disebarkan, identitas terkelola pabrik data dan identitas AAD untuk pengguna yang menyebarkan templat akan diberikan peran Pengguna Rahasia Key Vault.
contoh Titik Akhir Privat Templat ini memperlihatkan cara membuat titik akhir privat yang menunjuk ke Azure SQL Server
Memprovisikan Aplikasi Web dengan SQL Database Templat ini menyediakan Aplikasi Web, SQL Database, pengaturan AutoScale, Aturan pemberitahuan, dan App Insights. Ini mengonfigurasi string koneksi di aplikasi web untuk database.
Sonarqube Docker Web App di Linux dengan Azure SQL Templat ini menyebarkan Sonarqube dalam kontainer Linux aplikasi web Azure App Service menggunakan gambar Sonarqube resmi dan didukung oleh Azure SQL Server.
Web App dengan Identitas Terkelola, SQL Server, dan ΑΙ Contoh sederhana untuk menyebarkan infrastruktur Azure untuk aplikasi + data + identitas terkelola + pemantauan

Definisi sumber daya templat ARM

Jenis sumber daya server/database dapat disebarkan dengan operasi yang menargetkan:

  • Grup sumber daya - Lihat perintah penyebaran grup sumber daya

Untuk daftar properti yang diubah di setiap versi API, lihat mengubah log.

Format sumber daya

Untuk membuat sumber daya Microsoft.Sql/servers/databases, tambahkan JSON berikut ke templat Anda.

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

Nilai Properti

Microsoft.Sql/servers/databases

Name Description Value
apiVersion Versi api '2024-11-01-preview'
identitas Identitas Azure Active Directory database. DatabaseIdentity
lokasi Lokasi sumber daya. string (diperlukan)
name Nama sumber daya string (diperlukan)
properties Properti sumber daya. DatabaseProperties
sku SKU database.

Daftar SKU dapat bervariasi menurut wilayah dan penawaran dukungan. Untuk menentukan SKU (termasuk nama SKU, tingkat/edisi, keluarga, dan kapasitas) yang tersedia untuk langganan Anda di wilayah Azure, gunakan Capabilities_ListByLocation REST API atau salah satu perintah berikut:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />Cangkang Kekuatan
<lokasi Get-AzSqlServerServiceObjective -Location>
````
Sku
tags Tag sumber daya Kamus nama dan nilai tag. Lihat Tag dalam templat
jenis Jenis sumber daya 'Microsoft.Sql/servers/databases'

DatabaseIdentity

Name Description Value
jenis Jenis identitas 'None'
'UserAssigned'
userAssignedIdentities Id sumber daya dari identitas yang ditetapkan pengguna untuk digunakan DatabaseIdentityUserAssignedIdentities

DatabaseIdentityUserAssignedIdentities

Name Description Value

DatabaseKey

Name Description Value

DatabaseProperties

Name Description Value
autoPauseDelay Waktu dalam menit setelah database dijeda secara otomatis. Nilai -1 berarti jeda otomatis dinonaktifkan int
availabilityZone Menentukan zona ketersediaan tempat database disematkan. '1'
'2'
'3'
'NoPreference'
catalogCollation Kolate katalog metadata. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
kolase Kolatasi database. string
createMode Menentukan mode pembuatan database.

Default: pembuatan database reguler.

Salin: membuat database sebagai salinan database yang sudah ada. sourceDatabaseId harus ditentukan sebagai ID sumber daya database sumber.

Sekunder: membuat database sebagai replika sekunder dari database yang ada. sourceDatabaseId harus ditentukan sebagai ID sumber daya dari database utama yang ada.

PointInTimeRestore: Membuat database dengan memulihkan cadangan titik waktu database yang sudah ada. sourceDatabaseId harus ditentukan sebagai ID sumber daya database yang ada, dan restorePointInTime harus ditentukan.

Pemulihan: Membuat database dengan memulihkan cadangan yang direplikasi secara geografis. sourceDatabaseId harus ditentukan sebagai ID sumber daya database yang dapat dipulihkan untuk dipulihkan.

Pemulihan: Membuat database dengan memulihkan cadangan database yang dihapus. sourceDatabaseId harus ditentukan. Jika sourceDatabaseId adalah ID sumber daya asli database, maka sourceDatabaseDeletionDate harus ditentukan. Jika tidak, sourceDatabaseId harus menjadi ID sumber daya database yang dihilangkan dan sourceDatabaseDeletionDate yang dapat diabaikan. restorePointInTime juga dapat ditentukan untuk memulihkan dari titik waktu sebelumnya.

RestoreLongTermRetentionBackup: Membuat database dengan memulihkan dari vault retensi jangka panjang. recoveryServicesRecoveryPointResourceId harus ditentukan sebagai ID sumber daya titik pemulihan.

Copy, Secondary, dan RestoreLongTermRetentionBackup tidak didukung untuk edisi DataWarehouse.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId Pengidentifikasi sumber daya kumpulan elastis yang berisi database ini. string
encryptionProtector URI brankas kunci azure database jika dikonfigurasi dengan per Kunci Terkelola Pelanggan Database. string
encryptionProtectorAutoRotation Bendera untuk mengaktifkan atau menonaktifkan rotasi otomatis kunci AKV pelindung enkripsi database. bool
federatedClientId Id Klien yang digunakan untuk skenario CMK lintas penyewa per database string

Constraints:
Panjang min = 36
Panjang maksimum = 36
Pola = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
freeLimitExhaustionBehavior Menentukan perilaku ketika batas gratis bulanan habis untuk database gratis.

Jeda Otomatis: Database akan dijeda secara otomatis setelah kelelahan batas gratis selama sisa bulan.

BillForUsage: Database akan terus online setelah kelelahan batas gratis dan kelebihan biaya apa pun akan ditagih.
'AutoPause'
'BillOverUsage'
highAvailabilityReplicaCount Jumlah replika sekunder yang terkait dengan database edisi Business Critical, Premium, atau Hyperscale yang digunakan untuk memberikan ketersediaan tinggi. Tidak berlaku untuk database Hyperscale dalam kumpulan elastis. int
isLedgerOn Apakah database ini adalah database ledger atau tidak, yang berarti semua tabel dalam database adalah tabel ledger. Catatan: nilai properti ini tidak dapat diubah setelah database dibuat. bool
keys Id sumber daya dari identitas yang ditetapkan pengguna untuk digunakan DatabasePropertiesKeys
licenseType Jenis lisensi yang akan diterapkan untuk database ini. LicenseIncluded jika Anda memerlukan lisensi, atau BasePrice jika Anda memiliki lisensi dan memenuhi syarat untuk Azure Hybrid Benefit. 'BasePrice'
'LicenseIncluded'
longTermRetentionBackupResourceId Pengidentifikasi sumber daya cadangan retensi jangka panjang yang terkait dengan operasi pembuatan database ini. string
maintenanceConfigurationId Id konfigurasi pemeliharaan yang ditetapkan ke database. Konfigurasi ini menentukan periode kapan pembaruan pemeliharaan akan terjadi. string
manualCutover Apakah cutover manual yang dikontrol pelanggan perlu dilakukan selama operasi Pembaruan Database ke tingkat Hyperscale atau tidak.

Properti ini hanya berlaku saat menskalakan database dari tingkat Business Critical/General Purpose/Premium/Standard ke tingkat Hyperscale.

Ketika manualCutover ditentukan, operasi penskalaan akan menunggu input pengguna untuk memicu cutover ke database Hyperscale.

Untuk memicu cutover, harap berikan parameter 'performCutover' saat operasi Penskalaan dalam status Menunggu.
bool
maxSizeBytes Ukuran maksimum database yang dinyatakan dalam byte. int
minCapacity Kapasitas minimal yang akan selalu dialokasikan database, jika tidak dijeda int
performCutover Untuk memicu cutover manual yang dikontrol pelanggan selama status tunggu saat operasi Penskalaan sedang berlangsung.

Parameter properti ini hanya berlaku untuk operasi penskalaan yang dimulai bersama dengan parameter 'manualCutover'.

Properti ini hanya berlaku saat penskalaan database dari tingkat Business Critical/General Purpose/Premium/Standard ke tingkat Hyperscale sudah berlangsung.

Ketika performCutover ditentukan, operasi penskalaan akan memicu cutover dan melakukan perubahan peran ke database Hyperscale.
bool
preferredEnclaveType Jenis enklave yang diminta pada database yaitu enklave Default atau VBS. 'Default'
'VBS'
readScale Status perutean baca-saja. Jika diaktifkan, koneksi yang memiliki niat aplikasi diatur ke readonly dalam string koneksinya dapat dirutekan ke replika sekunder baca-saja di wilayah yang sama. Tidak berlaku untuk database Hyperscale dalam kumpulan elastis. 'Disabled'
'Enabled'
recoverableDatabaseId Pengidentifikasi sumber daya database yang dapat dipulihkan yang terkait dengan operasi pembuatan database ini. string
recoveryServicesRecoveryPointId Pengidentifikasi sumber daya titik pemulihan yang terkait dengan operasi pembuatan database ini. string
requestedBackupStorageRedundancy Jenis akun penyimpanan yang akan digunakan untuk menyimpan cadangan untuk database ini. 'Geo'
'GeoZone'
'Local'
'Zone'
restorableDroppedDatabaseId Pengidentifikasi sumber daya dari database yang dihilangkan yang dapat dihilangkan yang terkait dengan operasi pembuatan database ini. string
restorePointInTime Menentukan titik waktu (format ISO8601) database sumber yang akan dipulihkan untuk membuat database baru. string
sampleName Nama skema sampel yang akan diterapkan saat membuat database ini. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
secondaryType Jenis database sekunder jika merupakan sekunder. Nilai yang valid adalah Geo, Bernama, dan Siaga. 'Geo'
'Named'
'Standby'
sourceDatabaseDeletionDate Menentukan waktu database dihapus. string
sourceDatabaseId Pengidentifikasi sumber daya database sumber yang terkait dengan operasi pembuatan database ini. string
sourceResourceId Pengidentifikasi sumber daya sumber yang terkait dengan operasi pembuatan database ini.

Properti ini hanya didukung untuk edisi DataWarehouse dan memungkinkan pemulihan di seluruh langganan.

Ketika sourceResourceId ditentukan, sourceDatabaseId, recoverableDatabaseId, restorableDroppedDatabaseId dan sourceDatabaseDeletionDate tidak boleh ditentukan dan CreateMode harus PointInTimeRestore, Restore atau Recover.

Ketika createMode adalah PointInTimeRestore, sourceResourceId harus menjadi ID sumber daya database yang ada atau kumpulan sql yang ada, dan restorePointInTime harus ditentukan.

Ketika createMode adalah Restore, sourceResourceId harus menjadi ID sumber daya database yang dihilangkan yang dapat dipulihkan atau kumpulan sql yang dapat dihilangkan kembali.

Ketika createMode adalah Recover, sourceResourceId harus menjadi ID sumber daya database yang dapat dipulihkan atau kumpulan sql yang dapat dipulihkan.

Saat langganan sumber milik penyewa yang berbeda dari langganan target, header "x-ms-authorization-auxiliary" harus berisi token autentikasi untuk penyewa sumber. Untuk detail selengkapnya tentang header "x-ms-authorization-auxiliary" lihat /azure/azure-resource-manager/management/authenticate-multi-tenant
string
useFreeLimit Apakah database menggunakan batas bulanan gratis atau tidak. Diizinkan pada satu database dalam langganan. bool
zoneRedundant Apakah database ini redundan zona atau tidak, yang berarti replika database ini akan tersebar di beberapa zona ketersediaan. bool

DatabasePropertiesKeys

Name Description Value

DatabaseUserIdentity

Name Description Value

Sku

Name Description Value
kapasitas Kapasitas SKU tertentu. int
family Jika layanan memiliki generasi perangkat keras yang berbeda, untuk SKU yang sama, maka itu dapat ditangkap di sini. string
name Nama SKU, biasanya, kode huruf + Angka, misalnya P3. string (diperlukan)
size Ukuran SKU tertentu string
tier Tingkat atau edisi SKU tertentu, misalnya Dasar, Premium. string

TrackedResourceTags

Name Description Value

Contoh Penggunaan

Templat Pemulaan Cepat Azure

Templat Mulai Cepat Azure berikut ini menyebarkan jenis sumber daya ini.

Template Description
Azure SQL Server dengan Audit yang ditulis ke Log Analytics

Sebarkan ke Azure
Templat ini memungkinkan Anda untuk menyebarkan server Azure SQL dengan Audit diaktifkan untuk menulis log audit ke Analitik Log (ruang kerja OMS)
Membuat SQL Server dan Database

Sebarkan ke Azure
Templat ini memungkinkan Anda membuat SQL Database dan Server.
kumpulan SQL Khusus dengan Enkripsi Transparan

Sebarkan ke Azure
Membuat SQL Server dan kumpulan SQL Khusus (sebelumnya SQL DW) dengan Enkripsi Data Transparan.
Menyebarkan Kumpulan Elastis SQL baru

Sebarkan ke Azure
Templat ini memungkinkan Anda untuk menyebarkan Kumpulan Elastis SQL baru dengan SQL Server terkait baru dan Database SQL baru untuk ditetapkan ke dalamnya.
Menyebarkan Analitik Olahraga di Arsitektur Azure

Sebarkan ke Azure
Membuat akun penyimpanan Azure dengan ADLS Gen 2 diaktifkan, instans Azure Data Factory dengan layanan tertaut untuk akun penyimpanan (Azure SQL Database jika disebarkan), dan instans Azure Databricks. Identitas AAD untuk pengguna yang menyebarkan templat dan identitas terkelola untuk instans ADF akan diberikan peran Kontributor Data Blob Penyimpanan pada akun penyimpanan. Ada juga opsi untuk menyebarkan instans Azure Key Vault, Azure SQL Database, dan Azure Event Hub (untuk kasus penggunaan streaming). Saat Azure Key Vault disebarkan, identitas terkelola pabrik data dan identitas AAD untuk pengguna yang menyebarkan templat akan diberikan peran Pengguna Rahasia Key Vault.
HDInsight dengan Ambari + Apache Hive Metastore DB kustom di VNET

Sebarkan ke Azure
Templat ini memungkinkan Anda membuat kluster HDInsight di jaringan virtual yang ada dengan SQL DB baru yang berfungsi sebagai Ambari DB kustom dan Apache Hive Metastore. Anda harus memiliki SQL Sever, akun penyimpanan, dan VNET yang sudah ada.
contoh Titik Akhir Privat

Sebarkan ke Azure
Templat ini memperlihatkan cara membuat titik akhir privat yang menunjuk ke Azure SQL Server
Memprovisikan Aplikasi Web dengan SQL Database

Sebarkan ke Azure
Templat ini menyediakan Aplikasi Web, SQL Database, pengaturan AutoScale, Aturan pemberitahuan, dan App Insights. Ini mengonfigurasi string koneksi di aplikasi web untuk database.
Layanan Desktop Jarak Jauh dengan Ketersediaan Tinggi

Sebarkan ke Azure
Kode sampel Templat ARM ini akan menyebarkan lab Koleksi Sesi Remote Desktop Services 2019 dengan ketersediaan tinggi. Tujuannya adalah untuk menyebarkan solusi yang sepenuhnya redundan dan sangat tersedia untuk Layanan Desktop Jauh, menggunakan Windows Server 2019.
Sonarqube Docker Web App di Linux dengan Azure SQL

Sebarkan ke Azure
Templat ini menyebarkan Sonarqube dalam kontainer Linux aplikasi web Azure App Service menggunakan gambar Sonarqube resmi dan didukung oleh Azure SQL Server.
Web App dengan Identitas Terkelola, SQL Server, dan ΑΙ

Sebarkan ke Azure
Contoh sederhana untuk menyebarkan infrastruktur Azure untuk aplikasi + data + identitas terkelola + pemantauan
WebApp yang menggunakan Azure SQL Private Endpoint

Sebarkan ke Azure
Templat ini memperlihatkan cara membuat aplikasi Web yang menggunakan titik akhir privat yang menunjuk ke Azure SQL Server

Definisi sumber daya Terraform (penyedia AzAPI)

Jenis sumber daya server/database dapat disebarkan dengan operasi yang menargetkan:

  • Grup sumber daya

Untuk daftar properti yang diubah di setiap versi API, lihat mengubah log.

Format sumber daya

Untuk membuat sumber daya Microsoft.Sql/servers/databases, tambahkan Terraform berikut ke templat Anda.

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

Nilai Properti

Microsoft.Sql/servers/databases

Name Description Value
identitas Identitas Azure Active Directory database. DatabaseIdentity
lokasi Lokasi sumber daya. string (diperlukan)
name Nama sumber daya string (diperlukan)
parent_id ID sumber daya yang merupakan induk untuk sumber daya ini. ID untuk sumber daya jenis: server
properties Properti sumber daya. DatabaseProperties
sku SKU database.

Daftar SKU dapat bervariasi menurut wilayah dan penawaran dukungan. Untuk menentukan SKU (termasuk nama SKU, tingkat/edisi, keluarga, dan kapasitas) yang tersedia untuk langganan Anda di wilayah Azure, gunakan Capabilities_ListByLocation REST API atau salah satu perintah berikut:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />Cangkang Kekuatan
<lokasi Get-AzSqlServerServiceObjective -Location>
````
Sku
tags Tag sumber daya Kamus nama dan nilai tag.
jenis Jenis sumber daya "Microsoft.SQL/servers/databases@2024-11-01-preview"

DatabaseIdentity

Name Description Value
jenis Jenis identitas 'None'
'UserAssigned'
userAssignedIdentities Id sumber daya dari identitas yang ditetapkan pengguna untuk digunakan DatabaseIdentityUserAssignedIdentities

DatabaseIdentityUserAssignedIdentities

Name Description Value

DatabaseKey

Name Description Value

DatabaseProperties

Name Description Value
autoPauseDelay Waktu dalam menit setelah database dijeda secara otomatis. Nilai -1 berarti jeda otomatis dinonaktifkan int
availabilityZone Menentukan zona ketersediaan tempat database disematkan. '1'
'2'
'3'
'NoPreference'
catalogCollation Kolate katalog metadata. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
kolase Kolatasi database. string
createMode Menentukan mode pembuatan database.

Default: pembuatan database reguler.

Salin: membuat database sebagai salinan database yang sudah ada. sourceDatabaseId harus ditentukan sebagai ID sumber daya database sumber.

Sekunder: membuat database sebagai replika sekunder dari database yang ada. sourceDatabaseId harus ditentukan sebagai ID sumber daya dari database utama yang ada.

PointInTimeRestore: Membuat database dengan memulihkan cadangan titik waktu database yang sudah ada. sourceDatabaseId harus ditentukan sebagai ID sumber daya database yang ada, dan restorePointInTime harus ditentukan.

Pemulihan: Membuat database dengan memulihkan cadangan yang direplikasi secara geografis. sourceDatabaseId harus ditentukan sebagai ID sumber daya database yang dapat dipulihkan untuk dipulihkan.

Pemulihan: Membuat database dengan memulihkan cadangan database yang dihapus. sourceDatabaseId harus ditentukan. Jika sourceDatabaseId adalah ID sumber daya asli database, maka sourceDatabaseDeletionDate harus ditentukan. Jika tidak, sourceDatabaseId harus menjadi ID sumber daya database yang dihilangkan dan sourceDatabaseDeletionDate yang dapat diabaikan. restorePointInTime juga dapat ditentukan untuk memulihkan dari titik waktu sebelumnya.

RestoreLongTermRetentionBackup: Membuat database dengan memulihkan dari vault retensi jangka panjang. recoveryServicesRecoveryPointResourceId harus ditentukan sebagai ID sumber daya titik pemulihan.

Copy, Secondary, dan RestoreLongTermRetentionBackup tidak didukung untuk edisi DataWarehouse.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId Pengidentifikasi sumber daya kumpulan elastis yang berisi database ini. string
encryptionProtector URI brankas kunci azure database jika dikonfigurasi dengan per Kunci Terkelola Pelanggan Database. string
encryptionProtectorAutoRotation Bendera untuk mengaktifkan atau menonaktifkan rotasi otomatis kunci AKV pelindung enkripsi database. bool
federatedClientId Id Klien yang digunakan untuk skenario CMK lintas penyewa per database string

Constraints:
Panjang min = 36
Panjang maksimum = 36
Pola = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
freeLimitExhaustionBehavior Menentukan perilaku ketika batas gratis bulanan habis untuk database gratis.

Jeda Otomatis: Database akan dijeda secara otomatis setelah kelelahan batas gratis selama sisa bulan.

BillForUsage: Database akan terus online setelah kelelahan batas gratis dan kelebihan biaya apa pun akan ditagih.
'AutoPause'
'BillOverUsage'
highAvailabilityReplicaCount Jumlah replika sekunder yang terkait dengan database edisi Business Critical, Premium, atau Hyperscale yang digunakan untuk memberikan ketersediaan tinggi. Tidak berlaku untuk database Hyperscale dalam kumpulan elastis. int
isLedgerOn Apakah database ini adalah database ledger atau tidak, yang berarti semua tabel dalam database adalah tabel ledger. Catatan: nilai properti ini tidak dapat diubah setelah database dibuat. bool
keys Id sumber daya dari identitas yang ditetapkan pengguna untuk digunakan DatabasePropertiesKeys
licenseType Jenis lisensi yang akan diterapkan untuk database ini. LicenseIncluded jika Anda memerlukan lisensi, atau BasePrice jika Anda memiliki lisensi dan memenuhi syarat untuk Azure Hybrid Benefit. 'BasePrice'
'LicenseIncluded'
longTermRetentionBackupResourceId Pengidentifikasi sumber daya cadangan retensi jangka panjang yang terkait dengan operasi pembuatan database ini. string
maintenanceConfigurationId Id konfigurasi pemeliharaan yang ditetapkan ke database. Konfigurasi ini menentukan periode kapan pembaruan pemeliharaan akan terjadi. string
manualCutover Apakah cutover manual yang dikontrol pelanggan perlu dilakukan selama operasi Pembaruan Database ke tingkat Hyperscale atau tidak.

Properti ini hanya berlaku saat menskalakan database dari tingkat Business Critical/General Purpose/Premium/Standard ke tingkat Hyperscale.

Ketika manualCutover ditentukan, operasi penskalaan akan menunggu input pengguna untuk memicu cutover ke database Hyperscale.

Untuk memicu cutover, harap berikan parameter 'performCutover' saat operasi Penskalaan dalam status Menunggu.
bool
maxSizeBytes Ukuran maksimum database yang dinyatakan dalam byte. int
minCapacity Kapasitas minimal yang akan selalu dialokasikan database, jika tidak dijeda int
performCutover Untuk memicu cutover manual yang dikontrol pelanggan selama status tunggu saat operasi Penskalaan sedang berlangsung.

Parameter properti ini hanya berlaku untuk operasi penskalaan yang dimulai bersama dengan parameter 'manualCutover'.

Properti ini hanya berlaku saat penskalaan database dari tingkat Business Critical/General Purpose/Premium/Standard ke tingkat Hyperscale sudah berlangsung.

Ketika performCutover ditentukan, operasi penskalaan akan memicu cutover dan melakukan perubahan peran ke database Hyperscale.
bool
preferredEnclaveType Jenis enklave yang diminta pada database yaitu enklave Default atau VBS. 'Default'
'VBS'
readScale Status perutean baca-saja. Jika diaktifkan, koneksi yang memiliki niat aplikasi diatur ke readonly dalam string koneksinya dapat dirutekan ke replika sekunder baca-saja di wilayah yang sama. Tidak berlaku untuk database Hyperscale dalam kumpulan elastis. 'Disabled'
'Enabled'
recoverableDatabaseId Pengidentifikasi sumber daya database yang dapat dipulihkan yang terkait dengan operasi pembuatan database ini. string
recoveryServicesRecoveryPointId Pengidentifikasi sumber daya titik pemulihan yang terkait dengan operasi pembuatan database ini. string
requestedBackupStorageRedundancy Jenis akun penyimpanan yang akan digunakan untuk menyimpan cadangan untuk database ini. 'Geo'
'GeoZone'
'Local'
'Zone'
restorableDroppedDatabaseId Pengidentifikasi sumber daya dari database yang dihilangkan yang dapat dihilangkan yang terkait dengan operasi pembuatan database ini. string
restorePointInTime Menentukan titik waktu (format ISO8601) database sumber yang akan dipulihkan untuk membuat database baru. string
sampleName Nama skema sampel yang akan diterapkan saat membuat database ini. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
secondaryType Jenis database sekunder jika merupakan sekunder. Nilai yang valid adalah Geo, Bernama, dan Siaga. 'Geo'
'Named'
'Standby'
sourceDatabaseDeletionDate Menentukan waktu database dihapus. string
sourceDatabaseId Pengidentifikasi sumber daya database sumber yang terkait dengan operasi pembuatan database ini. string
sourceResourceId Pengidentifikasi sumber daya sumber yang terkait dengan operasi pembuatan database ini.

Properti ini hanya didukung untuk edisi DataWarehouse dan memungkinkan pemulihan di seluruh langganan.

Ketika sourceResourceId ditentukan, sourceDatabaseId, recoverableDatabaseId, restorableDroppedDatabaseId dan sourceDatabaseDeletionDate tidak boleh ditentukan dan CreateMode harus PointInTimeRestore, Restore atau Recover.

Ketika createMode adalah PointInTimeRestore, sourceResourceId harus menjadi ID sumber daya database yang ada atau kumpulan sql yang ada, dan restorePointInTime harus ditentukan.

Ketika createMode adalah Restore, sourceResourceId harus menjadi ID sumber daya database yang dihilangkan yang dapat dipulihkan atau kumpulan sql yang dapat dihilangkan kembali.

Ketika createMode adalah Recover, sourceResourceId harus menjadi ID sumber daya database yang dapat dipulihkan atau kumpulan sql yang dapat dipulihkan.

Saat langganan sumber milik penyewa yang berbeda dari langganan target, header "x-ms-authorization-auxiliary" harus berisi token autentikasi untuk penyewa sumber. Untuk detail selengkapnya tentang header "x-ms-authorization-auxiliary" lihat /azure/azure-resource-manager/management/authenticate-multi-tenant
string
useFreeLimit Apakah database menggunakan batas bulanan gratis atau tidak. Diizinkan pada satu database dalam langganan. bool
zoneRedundant Apakah database ini redundan zona atau tidak, yang berarti replika database ini akan tersebar di beberapa zona ketersediaan. bool

DatabasePropertiesKeys

Name Description Value

DatabaseUserIdentity

Name Description Value

Sku

Name Description Value
kapasitas Kapasitas SKU tertentu. int
family Jika layanan memiliki generasi perangkat keras yang berbeda, untuk SKU yang sama, maka itu dapat ditangkap di sini. string
name Nama SKU, biasanya, kode huruf + Angka, misalnya P3. string (diperlukan)
size Ukuran SKU tertentu string
tier Tingkat atau edisi SKU tertentu, misalnya Dasar, Premium. string

TrackedResourceTags

Name Description Value

Contoh Penggunaan

Sampel Terraform

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

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