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

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

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

В-третьих, для мониторинга действий пользователя действительно лучше всего (как это уже выше предлагалось) использовать триггеры.
...
Рейтинг: 0 / 0
04.12.2000, 18:42
    #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
04.12.2000, 19:34
    #32001016
baxxtor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Журнал транзакций, или как я наивно заблуждался
да, свалка, а что ты хотел? очень редко существует необходимость в подобных вещах. задача БД не заниматься безопасностью, ее задача обеспечить хранение и целостность данных! если тебе надо делать "безопасность" (авторизованные изменения), то сделай, чтобы любые изменения можно былоо внести только через сохраненные процедуры, доступ на исполнение сохраненных процедур дай только одному пользователю - БЛ (Бизнес-Логике). Далее БЛ будет "логинить" пользователей и исполнять методы (СП) в базе. Все что тебе надо в каждой, или только в тех где надо, СПшках логировать их исполнение, для этого введи параметр user_id в такие СПшки. Это самый простой способ и имхо по отношению к перфомансу самый правильный.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Журнал транзакций, или как я наивно заблуждался / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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