Цитата:
Сообщение от
mazzy
UDP. Немного запоздало, но я потратил некоторое время на изучение вопроса.
В принципе ссылка с хабра - как всегда самая полезная )
1) CT (Change Tracking) - тут не подходит по смыслу, потому что не логирует версии данных, а только факт того, что они менялись, т.е. список ключей, например, recid.
Забавно кстати, что стандартный export в BYOD может конфликтовать по таблицам с модулями, которые так же пользуются CT. И на яммере посоветовали это "проверить", а что делать - не посоветовали.
2) CDC (Change Data Capture) - не работает в Azure, я не углублялся почему, пока это так.
3) SQL Server Audit - как я понял, потребует средств чтения + в Azure, что более важно, понадобится отдельный azure BLOB storage для журнала со всеми вытекающими подписками и настройками.
Общая проблема у последних двух подходов, как и пишут на Хабре - это "зафиксировать автора изменений". Если посмотреть в текст триггера, то там для расшифровки кода пользователя дергают самописную функцию DBO.SysGetUserIdFromContextInfo().
Как я понял - контекст жив, пока жив коннект к базе и позже, при обработке журнала, его уже не достать. А последние два метода как раз асинхронные.
Зато, пока разбирался, понял, что Change Tracking + BYOD - отлично подходят для анализа журнала БД через PowerBI. Это уже инструмент администратора, поскольку настройки прав тут не применяются, зато в нем можно проводить расследования за большие периоды, смотреть тренды и т.д.
В выложил само решение в комплекте с PowerBI-BYOD экспериментами в общий
доступ.
Это не мой первый опыт с BI по жизни, но первый - с Entity -> CT -> BYOD -> PowerBI, достаточно позитивный с точки зрения затраченного времени и полученного результата.
В принципе, даже получилось реализовать аналог формы DAX с гридами и т.п. Пока что нехватает возможности использовать графики - как слайсеры, поэтому при нажатии на строку таблицы с них слетают фильтры (либо держать зажатым ctrl). На сайте ideas уже есть пост на эту тему.