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

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

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

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

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

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

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

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

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

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

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


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