powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Журнал транзакций, или как я наивно заблуждался
6 сообщений из 6, страница 1 из 1
Журнал транзакций, или как я наивно заблуждался
    #32000967
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мудрый ALL!
Встала задача отслеживать (иногда) кто и когда поменял данные в конкретном поле конкретной таблицы. Я наивно полагал, что все это можно как-то вытащить из журнала транзакций. Не тут то было. Журнал весит 300 mb (сроду не чистил), стандартных средств поиска/просмотра я не обнаружил, и что там внутри понятия не имею (хотя отдаленно представляю зачем он нужен). Или я туп до безобразия, или просто чего-то недопонимаю. Как ПРАВИЛЬНО решить мою проблему ???
...
Рейтинг: 0 / 0
Журнал транзакций, или как я наивно заблуждался
    #32000973
baxxtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если тебе надо прям по полям, то напиши группу триггеров которые будут вести таблицу-лог. и будешь в ней все смотреть. да, и не забудь поправить права на эту таблицу, а то читать будешь "советские газеты".

Удачи!
...
Рейтинг: 0 / 0
Журнал транзакций, или как я наивно заблуждался
    #32000995
coyote
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так что это получается?!! средств просмотра .LDF файла не существует? Странно, а нахр..? он тогда нужен такой огромный? Мне вот тоже нужно время от времени просматривать, кто именно из user-ов изменил конкретную ячейку, а поскольку этих ячеек очень много (и полей тоже), то просто написанием группы тригеров не обойдешся. Может все таки существуют способы посмотреть журнал транзакций?
...
Рейтинг: 0 / 0
Журнал транзакций, или как я наивно заблуждался
    #32000997
Oleg F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, журнал транзаций называется именно "журналом транзакций", а не "журналом мониторинга действий пользователя". И цель его состоит в одном - обеспечить правильную и надёжную работу SQL-запросов с использованием BEGIN TRANSACTION, COMMIT TRANSACTION и ROLLBACK TRANSACTION. Т.е. с помощью него СУБД обеспецивает механизм фиксирования и отката транзакций.

Во-вторых, непонятно Ваше недоумение по поводу "почему журнал такой огромный". Вы вправе сделать его размер любым, хоть один Кбайт. Другой вопрос, сумеет ли маленький журнал транзаций обеспечить механизм транзакций. Размер журнала транзаций рассчитывается исходя из размера базы данных, размера максимальной таблицы в БД, анализа SQL-запросов к БД и т.д. Если все строки в базе добавляются, модифицируются и удаляются по одной, и активность изменений в базе данных невелика, то хватит и журнала транзакций в один Мбайт.

В-третьих, для мониторинга действий пользователя действительно лучше всего (как это уже выше предлагалось) использовать триггеры.
...
Рейтинг: 0 / 0
Журнал транзакций, или как я наивно заблуждался
    #32001015
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну тогда, Мудрый ALL, или разбей в пух и прах или пощади. Короче. Делаю табличку типа id Int Primary Key, OperationType SmallInt Tinyint, OperationDate Smalldatetime, UserId Int, DataType Int, NewData Varchar(255) - естно все Not Null, где OperationType 1,2 или 3 (Insert, Update, Delete). MewData именно Varchar чтобы туда можно было положить данные любого типа (при помощи Cast или Convert) и не обязательно 255 (но не длинее 8000). DataType - для ссылки на справочник типов, чтобы можно было данные восстановить (в принципе можно попробовать Case, а можно с помощью DSQL). Пасу все это триггерами. Вобщем не табличка, а грандиозная свалка. Твое мнение ?
...
Рейтинг: 0 / 0
Журнал транзакций, или как я наивно заблуждался
    #32001016
baxxtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, свалка, а что ты хотел? очень редко существует необходимость в подобных вещах. задача БД не заниматься безопасностью, ее задача обеспечить хранение и целостность данных! если тебе надо делать "безопасность" (авторизованные изменения), то сделай, чтобы любые изменения можно былоо внести только через сохраненные процедуры, доступ на исполнение сохраненных процедур дай только одному пользователю - БЛ (Бизнес-Логике). Далее БЛ будет "логинить" пользователей и исполнять методы (СП) в базе. Все что тебе надо в каждой, или только в тех где надо, СПшках логировать их исполнение, для этого введи параметр user_id в такие СПшки. Это самый простой способ и имхо по отношению к перфомансу самый правильный.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Журнал транзакций, или как я наивно заблуждался
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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