|
Журнал транзакций, или как я наивно заблуждался
|
|||
---|---|---|---|
#18+
Мудрый ALL! Встала задача отслеживать (иногда) кто и когда поменял данные в конкретном поле конкретной таблицы. Я наивно полагал, что все это можно как-то вытащить из журнала транзакций. Не тут то было. Журнал весит 300 mb (сроду не чистил), стандартных средств поиска/просмотра я не обнаружил, и что там внутри понятия не имею (хотя отдаленно представляю зачем он нужен). Или я туп до безобразия, или просто чего-то недопонимаю. Как ПРАВИЛЬНО решить мою проблему ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2000, 18:33 |
|
Журнал транзакций, или как я наивно заблуждался
|
|||
---|---|---|---|
#18+
если тебе надо прям по полям, то напиши группу триггеров которые будут вести таблицу-лог. и будешь в ней все смотреть. да, и не забудь поправить права на эту таблицу, а то читать будешь "советские газеты". Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2000, 23:30 |
|
Журнал транзакций, или как я наивно заблуждался
|
|||
---|---|---|---|
#18+
Так что это получается?!! средств просмотра .LDF файла не существует? Странно, а нахр..? он тогда нужен такой огромный? Мне вот тоже нужно время от времени просматривать, кто именно из user-ов изменил конкретную ячейку, а поскольку этих ячеек очень много (и полей тоже), то просто написанием группы тригеров не обойдешся. Может все таки существуют способы посмотреть журнал транзакций? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2000, 09:21 |
|
Журнал транзакций, или как я наивно заблуждался
|
|||
---|---|---|---|
#18+
Во-первых, журнал транзаций называется именно "журналом транзакций", а не "журналом мониторинга действий пользователя". И цель его состоит в одном - обеспечить правильную и надёжную работу SQL-запросов с использованием BEGIN TRANSACTION, COMMIT TRANSACTION и ROLLBACK TRANSACTION. Т.е. с помощью него СУБД обеспецивает механизм фиксирования и отката транзакций. Во-вторых, непонятно Ваше недоумение по поводу "почему журнал такой огромный". Вы вправе сделать его размер любым, хоть один Кбайт. Другой вопрос, сумеет ли маленький журнал транзаций обеспечить механизм транзакций. Размер журнала транзаций рассчитывается исходя из размера базы данных, размера максимальной таблицы в БД, анализа SQL-запросов к БД и т.д. Если все строки в базе добавляются, модифицируются и удаляются по одной, и активность изменений в базе данных невелика, то хватит и журнала транзакций в один Мбайт. В-третьих, для мониторинга действий пользователя действительно лучше всего (как это уже выше предлагалось) использовать триггеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2000, 10:37 |
|
Журнал транзакций, или как я наивно заблуждался
|
|||
---|---|---|---|
#18+
Ну тогда, Мудрый 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). Пасу все это триггерами. Вобщем не табличка, а грандиозная свалка. Твое мнение ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2000, 18:42 |
|
Журнал транзакций, или как я наивно заблуждался
|
|||
---|---|---|---|
#18+
да, свалка, а что ты хотел? очень редко существует необходимость в подобных вещах. задача БД не заниматься безопасностью, ее задача обеспечить хранение и целостность данных! если тебе надо делать "безопасность" (авторизованные изменения), то сделай, чтобы любые изменения можно былоо внести только через сохраненные процедуры, доступ на исполнение сохраненных процедур дай только одному пользователю - БЛ (Бизнес-Логике). Далее БЛ будет "логинить" пользователей и исполнять методы (СП) в базе. Все что тебе надо в каждой, или только в тех где надо, СПшках логировать их исполнение, для этого введи параметр user_id в такие СПшки. Это самый простой способ и имхо по отношению к перфомансу самый правильный. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2000, 19:34 |
|
|
start [/forum/topic.php?fid=46&fpage=3596&tid=1827569]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 136ms |
0 / 0 |