Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Неконтролируемые изменения данных в таблице / 11 сообщений из 11, страница 1 из 1
30.03.2018, 10:11
    #39623054
Denis B.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неконтролируемые изменения данных в таблице
Ситуация:
В одной таблице в базе появляются изменения данных. Происходит это регулярно раз в 24 часа, т.е. отрабатывает какой-то job или внешний сервис. Окружение сложное из нескольких серверов (тестовые, прототипы, и т.п.). Похоже просто где-то неправильно настроили приложение и оно лезет не в ту базу, в которую должно. Нужно отследить какой же процесс/машина вносит эти изменения. И вот тут-то самое интересное - не удаётся отловить это profiler'ом.
Вроде вся фильтрация настроена как надо и все SQL:Batchcompleted и RPCCompleted там трейсятся. Если запускать запросы, в том числе процессы, которые в нормальных сценариях работы вносят изменения, то всё отлично отслеживается профайлером, но вот отловить "зловреда" не получается. Запускаем трейсер незадолго до часа X, видим, что данные поменялись, а в трейсе ничего.

Какие ещё есть особые пути изменения данных, которые могут не отслеживаться?
Репликация на этом сервере не используется.
На откат к предыдущему состоянию таблицы не похоже, потому что в ней есть timestamp поля и они успешно прирастают.

Что ещё можно попробовать проверить?
...
Рейтинг: 0 / 0
30.03.2018, 10:15
    #39623061
Гигабайт Мегабайтович Килобайтов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неконтролируемые изменения данных в таблице
написать триггер религия не позволяет? ))
...
Рейтинг: 0 / 0
30.03.2018, 10:17
    #39623063
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неконтролируемые изменения данных в таблице
Навесьте на таблицу триггер ON UPDATE, и пусть фиксирует все поползновения поменять данные в какой-нить временной таблице - кто, что, куда и зачем... как я понимаю, временнОй период изменений достаточно узок, за 5 минут сервер от лишнего триггера не загнётся.
...
Рейтинг: 0 / 0
30.03.2018, 10:21
    #39623067
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неконтролируемые изменения данных в таблице
Denis B.,

вклчить change tracking или cdc, но точно не помню есть ли там хост
...
Рейтинг: 0 / 0
30.03.2018, 10:32
    #39623076
Denis B.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неконтролируемые изменения данных в таблице
Про триггер
Написать-то не проблема, но там что как-то можно узнать какой процесс меняет данные? Или может хотя бы как выглядит запрос который меняет данные?

Мне не важно, что на что изменилось, мне нужно выяснить кто это делает.
...
Рейтинг: 0 / 0
30.03.2018, 10:34
    #39623077
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неконтролируемые изменения данных в таблице
Denis B.,

SELECT * FROM sysprocesses WHERE spid = @@SPID
...
Рейтинг: 0 / 0
30.03.2018, 10:36
    #39623080
Denis B.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неконтролируемые изменения данных в таблице
так, отвечу сам себе, конечно HOST_NAME() никто не отменял.
Что-ж попробуем навесить триггер.
...
Рейтинг: 0 / 0
30.03.2018, 10:38
    #39623082
Гигабайт Мегабайтович Килобайтов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неконтролируемые изменения данных в таблице
Denis B.так, отвечу сам себе, конечно HOST_NAME() никто не отменял.
Что-ж попробуем навесить триггер.
user_name() и еже с ним.

и точно не помню - но функция возвращающая верхний батч
...
Рейтинг: 0 / 0
30.03.2018, 10:40
    #39623086
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неконтролируемые изменения данных в таблице
Гигабайт Мегабайтович Килобайтов,

dbcc inputbuffer(@@spid)
...
Рейтинг: 0 / 0
30.03.2018, 11:15
    #39623112
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неконтролируемые изменения данных в таблице
Denis B., в качестве гипотезы - если в трассе ничего нет, это может быть изменение в другом месте и восстановление в эту базу.
Особенно учитывая периодичность - это может быть джоб, который держит тестовую базу в актуальном состоянии - регулярно ресторит ее из свежих бэкапов.

Вот скрипт, которым это можно проверить:
https://www.mssqltips.com/sqlservertip/1724/when-was-the-last-time-your-sql-server-database-was-restored/
...
Рейтинг: 0 / 0
02.04.2018, 08:20
    #39623994
Denis B.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неконтролируемые изменения данных в таблице
Что-ж, триггер помог.
Нашелся на одной машине запускаемый через scheduler скрипт sqlcmd.

Непонятно только почему же его профайлер не отлавливал, сейчас специально посмотрел на настройки отлавливаемых событий - ничего особо подходящего, не нашёл, что можно было бы добавить специально для slcmd.

Всем спасибо за советы.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Неконтролируемые изменения данных в таблице / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]