#azure #terraform
Вопрос:
Я хочу настроить аудит базы данных SQL, чтобы я видел аудит сервера и базы данных, как показано ниже :
таким образом, это показывает, что существует аудит на SQL-сервере, а также в базе данных SQL. Я могу сделать это довольно легко в terraform, указав /master, и я могу выполнить аудит сервера — вот так :
#---- Diagnostic Logging ---- resource "azurerm_monitor_diagnostic_setting" "main" { name = "Diagnostic Settings - Master" target_resource_id = "${azurerm_mssql_server.main.id}/databases/master" log_analytics_workspace_id = azurerm_log_analytics_workspace.main.id log { category = "SQLSecurityAuditEvents" enabled = true retention_policy { enabled = false } } metric { category = "AllMetrics" retention_policy { enabled = false } } lifecycle { ignore_changes = [log, metric] } }
и этот раздел применяет его к БД /master (серверу).
resource "azurerm_mssql_server_extended_auditing_policy" "main" { server_id = azurerm_mssql_server.main.id log_monitoring_enabled = true }
хотя мне это нужно на сервере, мне это также нужно в двух базах данных, которые находятся на сервере. Любая помощь в этом, потому что я, кажется, не могу разобраться в этом.
Комментарии:
1. Я не уверен, что понимаю ваш вопрос. Как указано в синем поле вверху снимка экрана, включение ведения журнала на уровне сервера автоматически включит ведение журнала для всех баз данных на этом же сервере. Вам не нужно указывать его в своем файле tf.
2. справедливо — сеть, которую я пытался скопировать, была неправильной… хотя при необходимости вы можете создать политику анализа журналов для уровня БД.
3. Безусловно, все дело в вашей стратегии ведения журнала. Но как только вы включите его на уровне сервера, он будет преобладать в конфигурации ведения журнала БД — это полезно знать 🙂
Ответ №1:
Нет необходимости создавать уровень БД, но если вам это потребуется, тогда. вы можете сделать это, изменив эту строку на имя вашей бд.
target_resource_id = "${azurerm_mssql_server.main.id}/databases/master"
мастер указывает на ваш уровень сервера, но если вам нужна политика на уровне БД, измените ее на имя вашей БД.