Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
- Latest
- 2024-11-01-preview
- 2024-05-01-preview
- 2023-08-01
- 2023-08-01-preview
- 2023-05-01-preview
- 2023-02-01-preview
- 2022-11-01-preview
- 2022-08-01-preview
- 2022-05-01-preview
- 2022-02-01-preview
- 2021-11-01
- 2021-11-01-preview
- 2021-08-01-preview
- 2021-05-01-preview
- 2021-02-01-preview
- 2020-11-01-preview
- 2020-08-01-preview
- 2020-02-02-preview
- 2017-03-01-preview
Definição de recurso do Bicep
O tipo de recurso servers/databases/extendedAuditingSettings pode ser implantado com operações direcionadas:
Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.
Formato de recurso
Para criar um recurso Microsoft.Sql/servers/databases/extendedAuditingSettings, adicione o Bicep a seguir ao seu modelo.
resource symbolicname 'Microsoft.Sql/servers/databases/extendedAuditingSettings@2021-08-01-preview' = {
parent: resourceSymbolicName
name: 'default'
properties: {
auditActionsAndGroups: [
'string'
]
isAzureMonitorTargetEnabled: bool
isStorageSecondaryKeyInUse: bool
predicateExpression: 'string'
queueDelayMs: int
retentionDays: int
state: 'string'
storageAccountAccessKey: 'string'
storageAccountSubscriptionId: 'string'
storageEndpoint: 'string'
}
}
Valores de propriedade
Microsoft.Sql/servers/databases/extendedAuditingSettings
| Name | Description | Value |
|---|---|---|
| name | O nome do recurso | 'default' (obrigatório) |
| pai | No Bicep, você pode 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 o recurso do tipo: servidores/bancos de dados |
| properties | Propriedades do recurso. | ExtendedDatabaseBlobAuditingPolicyProperties |
ExtendedDatabaseBlobAuditingPolicyProperties
| Name | Description | Value |
|---|---|---|
| auditActionsAndGroups | Especifica o Actions-Groups e as Ações a serem auditádas. O conjunto recomendado de grupos de ações a ser usado é a seguinte combinação: isso auditará todas as consultas e procedimentos armazenados executados no banco de dados, bem como logons bem-sucedidos e com falha: BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP. Essa combinação acima também é o conjunto configurado por padrão ao habilitar a auditoria do portal do Azure. Os grupos de ações com suporte para auditoria são (observação: escolha apenas grupos específicos que abrangem suas necessidades de auditoria. O uso de grupos desnecessários pode levar a grandes quantidades de registros de auditoria): APPLICATION_ROLE_CHANGE_PASSWORD_GROUP BACKUP_RESTORE_GROUP DATABASE_LOGOUT_GROUP DATABASE_OBJECT_CHANGE_GROUP DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP DATABASE_OBJECT_PERMISSION_CHANGE_GROUP DATABASE_OPERATION_GROUP DATABASE_PERMISSION_CHANGE_GROUP DATABASE_PRINCIPAL_CHANGE_GROUP DATABASE_PRINCIPAL_IMPERSONATION_GROUP DATABASE_ROLE_MEMBER_CHANGE_GROUP FAILED_DATABASE_AUTHENTICATION_GROUP SCHEMA_OBJECT_ACCESS_GROUP SCHEMA_OBJECT_CHANGE_GROUP SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP USER_CHANGE_PASSWORD_GROUP BATCH_STARTED_GROUP BATCH_COMPLETED_GROUP DBCC_GROUP DATABASE_OWNERSHIP_CHANGE_GROUP DATABASE_CHANGE_GROUP LEDGER_OPERATION_GROUP Esses são grupos que abrangem todas as instruções sql e procedimentos armazenados executados no banco de dados e não devem ser usados em combinação com outros grupos, pois isso resultará em logs de auditoria duplicados. Para obter mais informações, consulte Database-Level Grupos de Ações de Auditoria. Para a política de auditoria de banco de dados, ações específicas também podem ser especificadas (observe que ações não podem ser especificadas para a política de auditoria do servidor). As ações com suporte para auditoria são: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES O formulário geral para definir uma ação a ser auditada é: {ação} ON {objeto} POR {principal} Observe que <o objeto> no formato acima pode se referir a um objeto como uma tabela, exibição ou procedimento armazenado ou um banco de dados ou esquema inteiro. Para os últimos casos, os formulários DATABASE::{db_name} e SCHEMA::{schema_name} são usados, respectivamente. Por exemplo: SELECT em dbo.myTable por público SELECT em DATABASE::myDatabase por público SELECT em SCHEMA::mySchema por public Para obter mais informações, consulte Database-Level Ações de Auditoria |
string[] |
| isAzureMonitorTargetEnabled | Especifica se os eventos de auditoria são enviados ao Azure Monitor. Para enviar os eventos para o Azure Monitor, especifique 'State' como 'Enabled' e 'IsAzureMonitorTargetEnabled' como true. Ao usar a API REST para configurar a auditoria, as Configurações de Diagnóstico com a categoria de logs de diagnóstico 'SQLSecurityAuditEvents' no banco de dados também devem ser criadas. Observe que, para auditoria no nível do servidor, você deve usar o banco de dados 'mestre' como {databaseName}. Formato de URI de Configurações de Diagnóstico: PÔR https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-previewPara obter mais informações, consulte a API REST de Configurações de Diagnóstico ou Configurações de Diagnóstico do PowerShell |
bool |
| isStorageSecondaryKeyInUse | Especifica se o valor storageAccountAccessKey é a chave secundária do armazenamento. | bool |
| predicateExpression | Especifica a condição de onde a cláusula ao criar uma auditoria. | cadeia |
| queueDelayMs | Especifica a quantidade de tempo em milissegundos que pode decorrer antes que as ações de auditoria sejam forçadas a serem processadas. O valor mínimo padrão é 1000 (1 segundo). O máximo é 2.147.483.647. |
int |
| retentionDays | Especifica o número de dias a serem mantidos nos logs de auditoria na conta de armazenamento. | int |
| estado | Especifica o estado da auditoria. Se o estado estiver habilitado, storageEndpoint ou isAzureMonitorTargetEnabled serão necessários. | 'Disabled' 'Enabled' (obrigatório) |
| storageAccountAccessKey | Especifica a chave do identificador da conta de armazenamento de auditoria. Se o estado estiver habilitado e o storageEndpoint for especificado, não especificar o storageAccountAccessKey usará a identidade gerenciada atribuída pelo sistema do SQL Server para acessar o armazenamento. Pré-requisitos para usar a autenticação de identidade gerenciada: 1. Atribuir ao SQL Server uma identidade gerenciada atribuída pelo sistema no AAD (Azure Active Directory). 2. Conceda acesso à identidade do SQL Server à conta de armazenamento adicionando a função RBAC 'Colaborador de Dados de Blob de Armazenamento' à identidade do servidor. Para obter mais informações, consulte Auditoria no armazenamento usando a autenticação de Identidade Gerenciada |
string Constraints: Valor confidencial. Passe como um parâmetro seguro. |
| storageAccountSubscriptionId | Especifica a ID da assinatura do armazenamento de blobs. | 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}$ |
| storageEndpoint | Especifica o ponto de extremidade de armazenamento de blobs (por exemplo, https://MyAccount.blob.core.windows.net). Se o estado estiver habilitado, storageEndpoint ou isAzureMonitorTargetEnabled será necessário. |
cadeia |
Definição de recurso de modelo do ARM
O tipo de recurso servers/databases/extendedAuditingSettings pode ser implantado com operações direcionadas:
Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.
Formato de recurso
Para criar um recurso Microsoft.Sql/servers/databases/extendedAuditingSettings, adicione o JSON a seguir ao seu modelo.
{
"type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
"apiVersion": "2021-08-01-preview",
"name": "string",
"properties": {
"auditActionsAndGroups": [ "string" ],
"isAzureMonitorTargetEnabled": "bool",
"isStorageSecondaryKeyInUse": "bool",
"predicateExpression": "string",
"queueDelayMs": "int",
"retentionDays": "int",
"state": "string",
"storageAccountAccessKey": "string",
"storageAccountSubscriptionId": "string",
"storageEndpoint": "string"
}
}
Valores de propriedade
Microsoft.Sql/servers/databases/extendedAuditingSettings
| Name | Description | Value |
|---|---|---|
| apiVersion | A versão da API | '2021-08-01-preview' |
| name | O nome do recurso | 'default' (obrigatório) |
| properties | Propriedades do recurso. | ExtendedDatabaseBlobAuditingPolicyProperties |
| tipo | O tipo de recurso | 'Microsoft.Sql/servers/databases/extendedAuditingSettings' |
ExtendedDatabaseBlobAuditingPolicyProperties
| Name | Description | Value |
|---|---|---|
| auditActionsAndGroups | Especifica o Actions-Groups e as Ações a serem auditádas. O conjunto recomendado de grupos de ações a ser usado é a seguinte combinação: isso auditará todas as consultas e procedimentos armazenados executados no banco de dados, bem como logons bem-sucedidos e com falha: BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP. Essa combinação acima também é o conjunto configurado por padrão ao habilitar a auditoria do portal do Azure. Os grupos de ações com suporte para auditoria são (observação: escolha apenas grupos específicos que abrangem suas necessidades de auditoria. O uso de grupos desnecessários pode levar a grandes quantidades de registros de auditoria): APPLICATION_ROLE_CHANGE_PASSWORD_GROUP BACKUP_RESTORE_GROUP DATABASE_LOGOUT_GROUP DATABASE_OBJECT_CHANGE_GROUP DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP DATABASE_OBJECT_PERMISSION_CHANGE_GROUP DATABASE_OPERATION_GROUP DATABASE_PERMISSION_CHANGE_GROUP DATABASE_PRINCIPAL_CHANGE_GROUP DATABASE_PRINCIPAL_IMPERSONATION_GROUP DATABASE_ROLE_MEMBER_CHANGE_GROUP FAILED_DATABASE_AUTHENTICATION_GROUP SCHEMA_OBJECT_ACCESS_GROUP SCHEMA_OBJECT_CHANGE_GROUP SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP USER_CHANGE_PASSWORD_GROUP BATCH_STARTED_GROUP BATCH_COMPLETED_GROUP DBCC_GROUP DATABASE_OWNERSHIP_CHANGE_GROUP DATABASE_CHANGE_GROUP LEDGER_OPERATION_GROUP Esses são grupos que abrangem todas as instruções sql e procedimentos armazenados executados no banco de dados e não devem ser usados em combinação com outros grupos, pois isso resultará em logs de auditoria duplicados. Para obter mais informações, consulte Database-Level Grupos de Ações de Auditoria. Para a política de auditoria de banco de dados, ações específicas também podem ser especificadas (observe que ações não podem ser especificadas para a política de auditoria do servidor). As ações com suporte para auditoria são: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES O formulário geral para definir uma ação a ser auditada é: {ação} ON {objeto} POR {principal} Observe que <o objeto> no formato acima pode se referir a um objeto como uma tabela, exibição ou procedimento armazenado ou um banco de dados ou esquema inteiro. Para os últimos casos, os formulários DATABASE::{db_name} e SCHEMA::{schema_name} são usados, respectivamente. Por exemplo: SELECT em dbo.myTable por público SELECT em DATABASE::myDatabase por público SELECT em SCHEMA::mySchema por public Para obter mais informações, consulte Database-Level Ações de Auditoria |
string[] |
| isAzureMonitorTargetEnabled | Especifica se os eventos de auditoria são enviados ao Azure Monitor. Para enviar os eventos para o Azure Monitor, especifique 'State' como 'Enabled' e 'IsAzureMonitorTargetEnabled' como true. Ao usar a API REST para configurar a auditoria, as Configurações de Diagnóstico com a categoria de logs de diagnóstico 'SQLSecurityAuditEvents' no banco de dados também devem ser criadas. Observe que, para auditoria no nível do servidor, você deve usar o banco de dados 'mestre' como {databaseName}. Formato de URI de Configurações de Diagnóstico: PÔR https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-previewPara obter mais informações, consulte a API REST de Configurações de Diagnóstico ou Configurações de Diagnóstico do PowerShell |
bool |
| isStorageSecondaryKeyInUse | Especifica se o valor storageAccountAccessKey é a chave secundária do armazenamento. | bool |
| predicateExpression | Especifica a condição de onde a cláusula ao criar uma auditoria. | cadeia |
| queueDelayMs | Especifica a quantidade de tempo em milissegundos que pode decorrer antes que as ações de auditoria sejam forçadas a serem processadas. O valor mínimo padrão é 1000 (1 segundo). O máximo é 2.147.483.647. |
int |
| retentionDays | Especifica o número de dias a serem mantidos nos logs de auditoria na conta de armazenamento. | int |
| estado | Especifica o estado da auditoria. Se o estado estiver habilitado, storageEndpoint ou isAzureMonitorTargetEnabled serão necessários. | 'Disabled' 'Enabled' (obrigatório) |
| storageAccountAccessKey | Especifica a chave do identificador da conta de armazenamento de auditoria. Se o estado estiver habilitado e o storageEndpoint for especificado, não especificar o storageAccountAccessKey usará a identidade gerenciada atribuída pelo sistema do SQL Server para acessar o armazenamento. Pré-requisitos para usar a autenticação de identidade gerenciada: 1. Atribuir ao SQL Server uma identidade gerenciada atribuída pelo sistema no AAD (Azure Active Directory). 2. Conceda acesso à identidade do SQL Server à conta de armazenamento adicionando a função RBAC 'Colaborador de Dados de Blob de Armazenamento' à identidade do servidor. Para obter mais informações, consulte Auditoria no armazenamento usando a autenticação de Identidade Gerenciada |
string Constraints: Valor confidencial. Passe como um parâmetro seguro. |
| storageAccountSubscriptionId | Especifica a ID da assinatura do armazenamento de blobs. | 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}$ |
| storageEndpoint | Especifica o ponto de extremidade de armazenamento de blobs (por exemplo, https://MyAccount.blob.core.windows.net). Se o estado estiver habilitado, storageEndpoint ou isAzureMonitorTargetEnabled será necessário. |
cadeia |
Exemplos de uso
Definição de recurso do Terraform (provedor de AzAPI)
O tipo de recurso servers/databases/extendedAuditingSettings pode ser implantado com operações direcionadas:
Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.
Formato de recurso
Para criar um recurso Microsoft.Sql/servers/databases/extendedAuditingSettings, adicione o Terraform a seguir ao seu modelo.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Sql/servers/databases/extendedAuditingSettings@2021-08-01-preview"
name = "string"
parent_id = "string"
body = {
properties = {
auditActionsAndGroups = [
"string"
]
isAzureMonitorTargetEnabled = bool
isStorageSecondaryKeyInUse = bool
predicateExpression = "string"
queueDelayMs = int
retentionDays = int
state = "string"
storageAccountAccessKey = "string"
storageAccountSubscriptionId = "string"
storageEndpoint = "string"
}
}
}
Valores de propriedade
Microsoft.Sql/servers/databases/extendedAuditingSettings
| Name | Description | Value |
|---|---|---|
| name | O nome do recurso | 'default' (obrigatório) |
| parent_id | A ID do recurso que é o pai desse recurso. | ID do recurso do tipo: servidores/bancos de dados |
| properties | Propriedades do recurso. | ExtendedDatabaseBlobAuditingPolicyProperties |
| tipo | O tipo de recurso | "Microsoft.Sql/servers/databases/extendedAuditingSettings@2021-08-01-preview" |
ExtendedDatabaseBlobAuditingPolicyProperties
| Name | Description | Value |
|---|---|---|
| auditActionsAndGroups | Especifica o Actions-Groups e as Ações a serem auditádas. O conjunto recomendado de grupos de ações a ser usado é a seguinte combinação: isso auditará todas as consultas e procedimentos armazenados executados no banco de dados, bem como logons bem-sucedidos e com falha: BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP. Essa combinação acima também é o conjunto configurado por padrão ao habilitar a auditoria do portal do Azure. Os grupos de ações com suporte para auditoria são (observação: escolha apenas grupos específicos que abrangem suas necessidades de auditoria. O uso de grupos desnecessários pode levar a grandes quantidades de registros de auditoria): APPLICATION_ROLE_CHANGE_PASSWORD_GROUP BACKUP_RESTORE_GROUP DATABASE_LOGOUT_GROUP DATABASE_OBJECT_CHANGE_GROUP DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP DATABASE_OBJECT_PERMISSION_CHANGE_GROUP DATABASE_OPERATION_GROUP DATABASE_PERMISSION_CHANGE_GROUP DATABASE_PRINCIPAL_CHANGE_GROUP DATABASE_PRINCIPAL_IMPERSONATION_GROUP DATABASE_ROLE_MEMBER_CHANGE_GROUP FAILED_DATABASE_AUTHENTICATION_GROUP SCHEMA_OBJECT_ACCESS_GROUP SCHEMA_OBJECT_CHANGE_GROUP SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP USER_CHANGE_PASSWORD_GROUP BATCH_STARTED_GROUP BATCH_COMPLETED_GROUP DBCC_GROUP DATABASE_OWNERSHIP_CHANGE_GROUP DATABASE_CHANGE_GROUP LEDGER_OPERATION_GROUP Esses são grupos que abrangem todas as instruções sql e procedimentos armazenados executados no banco de dados e não devem ser usados em combinação com outros grupos, pois isso resultará em logs de auditoria duplicados. Para obter mais informações, consulte Database-Level Grupos de Ações de Auditoria. Para a política de auditoria de banco de dados, ações específicas também podem ser especificadas (observe que ações não podem ser especificadas para a política de auditoria do servidor). As ações com suporte para auditoria são: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES O formulário geral para definir uma ação a ser auditada é: {ação} ON {objeto} POR {principal} Observe que <o objeto> no formato acima pode se referir a um objeto como uma tabela, exibição ou procedimento armazenado ou um banco de dados ou esquema inteiro. Para os últimos casos, os formulários DATABASE::{db_name} e SCHEMA::{schema_name} são usados, respectivamente. Por exemplo: SELECT em dbo.myTable por público SELECT em DATABASE::myDatabase por público SELECT em SCHEMA::mySchema por public Para obter mais informações, consulte Database-Level Ações de Auditoria |
string[] |
| isAzureMonitorTargetEnabled | Especifica se os eventos de auditoria são enviados ao Azure Monitor. Para enviar os eventos para o Azure Monitor, especifique 'State' como 'Enabled' e 'IsAzureMonitorTargetEnabled' como true. Ao usar a API REST para configurar a auditoria, as Configurações de Diagnóstico com a categoria de logs de diagnóstico 'SQLSecurityAuditEvents' no banco de dados também devem ser criadas. Observe que, para auditoria no nível do servidor, você deve usar o banco de dados 'mestre' como {databaseName}. Formato de URI de Configurações de Diagnóstico: PÔR https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-previewPara obter mais informações, consulte a API REST de Configurações de Diagnóstico ou Configurações de Diagnóstico do PowerShell |
bool |
| isStorageSecondaryKeyInUse | Especifica se o valor storageAccountAccessKey é a chave secundária do armazenamento. | bool |
| predicateExpression | Especifica a condição de onde a cláusula ao criar uma auditoria. | cadeia |
| queueDelayMs | Especifica a quantidade de tempo em milissegundos que pode decorrer antes que as ações de auditoria sejam forçadas a serem processadas. O valor mínimo padrão é 1000 (1 segundo). O máximo é 2.147.483.647. |
int |
| retentionDays | Especifica o número de dias a serem mantidos nos logs de auditoria na conta de armazenamento. | int |
| estado | Especifica o estado da auditoria. Se o estado estiver habilitado, storageEndpoint ou isAzureMonitorTargetEnabled serão necessários. | 'Disabled' 'Enabled' (obrigatório) |
| storageAccountAccessKey | Especifica a chave do identificador da conta de armazenamento de auditoria. Se o estado estiver habilitado e o storageEndpoint for especificado, não especificar o storageAccountAccessKey usará a identidade gerenciada atribuída pelo sistema do SQL Server para acessar o armazenamento. Pré-requisitos para usar a autenticação de identidade gerenciada: 1. Atribuir ao SQL Server uma identidade gerenciada atribuída pelo sistema no AAD (Azure Active Directory). 2. Conceda acesso à identidade do SQL Server à conta de armazenamento adicionando a função RBAC 'Colaborador de Dados de Blob de Armazenamento' à identidade do servidor. Para obter mais informações, consulte Auditoria no armazenamento usando a autenticação de Identidade Gerenciada |
string Constraints: Valor confidencial. Passe como um parâmetro seguro. |
| storageAccountSubscriptionId | Especifica a ID da assinatura do armazenamento de blobs. | 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}$ |
| storageEndpoint | Especifica o ponto de extremidade de armazenamento de blobs (por exemplo, https://MyAccount.blob.core.windows.net). Se o estado estiver habilitado, storageEndpoint ou isAzureMonitorTargetEnabled será necessário. |
cadeia |
Exemplos de uso
Exemplos do Terraform
Um exemplo básico de implantação da Política de Auditoria Estendida do Banco de Dados MS SQL.
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
}
provider "azapi" {
skip_provider_registration = false
}
data "azapi_client_config" "current" {}
variable "resource_name" {
type = string
default = "acctest0001"
}
variable "location" {
type = string
default = "westus"
}
variable "administrator_login_password" {
type = string
sensitive = true
description = "The administrator login password for the SQL server"
}
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@2023-08-01-preview"
parent_id = azapi_resource.resourceGroup.id
name = "${var.resource_name}-sqlserver"
location = var.location
body = {
properties = {
administratorLogin = "missadministrator"
administratorLoginPassword = var.administrator_login_password
minimalTlsVersion = "1.2"
publicNetworkAccess = "Enabled"
restrictOutboundNetworkAccess = "Disabled"
version = "12.0"
}
}
}
resource "azapi_resource" "storageAccount" {
type = "Microsoft.Storage/storageAccounts@2023-05-01"
parent_id = azapi_resource.resourceGroup.id
name = "${replace(var.resource_name, "-", "")}sa"
location = var.location
body = {
kind = "StorageV2"
properties = {
accessTier = "Hot"
allowBlobPublicAccess = true
allowCrossTenantReplication = false
allowSharedKeyAccess = true
defaultToOAuthAuthentication = false
dnsEndpointType = "Standard"
encryption = {
keySource = "Microsoft.Storage"
services = {
queue = {
keyType = "Service"
}
table = {
keyType = "Service"
}
}
}
isHnsEnabled = false
isLocalUserEnabled = true
isNfsV3Enabled = false
isSftpEnabled = false
minimumTlsVersion = "TLS1_2"
networkAcls = {
bypass = "AzureServices"
defaultAction = "Allow"
ipRules = []
resourceAccessRules = []
virtualNetworkRules = []
}
publicNetworkAccess = "Enabled"
supportsHttpsTrafficOnly = true
}
sku = {
name = "Standard_LRS"
}
}
}
resource "azapi_resource" "database" {
type = "Microsoft.Sql/servers/databases@2023-08-01-preview"
parent_id = azapi_resource.server.id
name = "${var.resource_name}-db"
location = var.location
body = {
properties = {
createMode = "Default"
requestedBackupStorageRedundancy = "Geo"
}
}
}
resource "azapi_resource_action" "storageAccountKeys" {
type = "Microsoft.Storage/storageAccounts@2023-05-01"
resource_id = azapi_resource.storageAccount.id
action = "listKeys"
method = "POST"
response_export_values = ["*"]
}
resource "azapi_resource" "extendedAuditingSetting" {
type = "Microsoft.Sql/servers/databases/extendedAuditingSettings@2023-08-01-preview"
parent_id = azapi_resource.database.id
name = "default"
body = {
properties = {
isAzureMonitorTargetEnabled = true
isStorageSecondaryKeyInUse = false
retentionDays = 0
state = "Enabled"
storageAccountAccessKey = azapi_resource_action.storageAccountKeys.output.keys[0].value
storageEndpoint = azapi_resource.storageAccount.output.properties.primaryEndpoints.blob
}
}
}