Оповещение Azure при добавлении правила брандмауэра SQL

#azure #azure-sql-database

#azure #azure-sql-database

Вопрос:

Есть ли способ получить оповещение при добавлении правила брандмауэра в базу данных SQL Azure? Я проверил панель мониторинга и не увидел для этого метрики или события журнала.

Ответ №1:

Для достижения этого можно использовать логическое приложение:

  1. Создайте новое приложение логики, используя шаблон «При получении HTTP-запроса». Используйте следующий JSON в качестве примера полезной нагрузки. Затем вам нужно будет добавить условие и действие (электронное письмо?). В теле письма вы можете отправить дополнительные сведения, такие как адрес электронной почты вызывающего абонента, IP-адрес вызывающего абонента и т.д.

Условия должны быть Status = Активировано и OperationName =»Microsoft.Sql/servers /firewallRules /write». введите описание изображения здесь 2. создайте новое оповещение в Monitor. Ресурсом будет ваш SQL Server, а сигналом будет «Все административные операции». Создайте новую группу действий и задайте действие webhook. Используйте URL-адрес logic app webhook, созданный на предыдущем шаге.

 {
    "headers": {
        "Connection": "Keep-Alive",
        "Expect": "100-continue",
        "Host": "abc.logic.azure.com",
        "User-Agent": "IcMBroadcaster/1.0",
        "X-CorrelationContext": "abc",
        "Content-Length": "1350",
        "Content-Type": "application/json; charset=utf-8"
    },
    "body": {
        "schemaId": "Microsoft.Insights/activityLogs",
        "data": {
            "status": "Activated",
            "context": {
                "activityLog": {
                    "channels": "Operation",
                    "eventSource": "Administrative",
                    "eventTimestamp": "2019-03-09T10:00:36.549 00:00",
                    "eventDataId": "eventid",
                    "level": "Informational",
                    "operationName": "Microsoft.Sql/servers/firewallRules/write",
                    "properties": {
                        "originalEventTimestamp": "03/09/2019 10:00:17",
                        "correlationId": "correlationId",
                        "eventId": "eventId",
                        "eventName": "OverwriteFirewallRules",
                        "operationName": "Microsoft.Sql/servers/firewallRules/write",
                        "status": "Succeeded",
                        "description_scrubbed": "description",
                        "caller": "useremail@email.com",
                        "callerCredentialType": "LiveId",
                        "eventChannel": "OperationLogStore",
                        "ipAddress": "useripaddress",
                        "eventSource": "SQL Databases Event Supplier"
                    },
                    "resourceId": "resourceId",
                    "resourceGroupName": "groupname",
                    "resourceProviderName": "MICROSOFT.SQL",
                    "status": "Succeeded",
                    "subscriptionId": "subscriptionId",
                    "submissionTimestamp": "2019-03-09T10:00:36.549 00:00",
                    "resourceType": "microsoft.sql/servers"
                }
            },
            "properties": {}
        }
    }
}
  

Комментарии:

1. Хороший чувак, креативное решение!

2. Но откуда поступает http-запрос?

3. Объясняется на 2-м шаге.

Ответ №2:

Вы можете сделать это с помощью журнала действий. Если вы добавите новое правило брандмауэра и через несколько минут проверите журнал действий, вы увидите серию записей с названием операции Обновление правил брандмауэра SQL Server. Щелкните по тому, у которого есть статус Успешно. На следующей странице появится кнопка «Новое правило оповещения«.

Вам нужно будет отредактировать условие, поскольку оно устанавливает инициатором ваше имя пользователя. Для этого щелкните условие и измените событие, инициируемое значением.