Мы разрабатываем веб-приложение с использованием asp.net и sql-сервера. Мы должны сделать аудиторскую проверку для приложения. Насколько я понимаю, аудиторский след будет в основном для всех вложений, обновлений и удалений в базе данных? Теперь способ приблизиться к этому заключается в том, что у меня есть таблица аудита аудита в БД, которая заполняется после запуска каждой вставки, обновления или удаления (вручную записывать скрипт в DAL). Однако любые изменения БД, непосредственно запущенные из студии управления SQL, НЕ будут записаны (по очевидным причинам: P).Audit Trail в веб-приложении с использованием SQL-сервера
Чтобы удовлетворить это, я мог бы создать спусковой крючок и заботиться обо всем. Я также сделал некоторые поисковые запросы и выяснил, что SQL-сервер имеет возможность выполнять аудиторскую проверку. Однако проблема с использованием триггеров заключается в том, что я НЕ получаю информацию пользователя, зарегистрированную на веб-сайте. Я получу пользователя sql, но я не даю двух криков об этом, меня беспокоит пользователь веб-сайта.
Решение, которое я выяснил, было либо . A) Получите контрольный журнал из моего веб-приложения, а также настройте триггер. В отчете аудита я просто показываю журнал аудита из веб-приложения и журнал аудита с SQL-сервера. Очевидные проблемы с этим подходом: над головой. Запись в два разных набора таблиц на КАЖДЫЙ DB CHANGE.
b) У меня есть столбец UserId ON EVERY DB TABLE. Затем я создаю триггер для записи всех изменений БД. Я передаю этот userId для каждой таблицы, которую я меняю (вставляю, обновляю, удаляю) и получаю этот идентификатор от триггера. Очевидные неудачи: лишний столбец userid в каждой таблице
Я приношу пользу для длинного сообщения. В основном мне нужен журнал аудита, который регистрирует все изменения db (в том числе direct hack to db), но в то же время дает мне регистрационную информацию для тех изменений db, которые были сделаны из веб-приложения.
Поймите любой вход в этом отношении.
Большое спасибо
xeshu
Лично я согласен с вами на 100%. Основная проблема заключается в том, что если кто-то просто перейдет прямо в db и начнет возиться с данными, но, как вы говорите, он вполне может просто удалить триггеры вместе, поэтому его действительно бессмысленно иметь триггеры только для этой вероятности 0.00001% который может быть очень удалён, если хакер взломает. Приветствия для ответа :) – xeshu
Аудит в базе данных SQL для меня намного безопаснее. Я знаю, откуда вы пришли, но Diebold получил довольно плохую печать для аудита через свое приложение, а не через свою базу данных: http://www.bbvforums.org/forums/messages/2197/2368.html – sarnold
зависит от вашего приложения, система голосования должна требовать гораздо более жесткого контроля, чем большинство приложений. Он может чувствовать себя более безопасным, но добавление регистрации уровня базы данных через триггеры SQL на практике не обеспечивает гораздо большей безопасности аудита для аудита уровня приложения. Любой, кто имеет доступ к базе данных и релевантным разрешениям, может изменять триггеры и вставлять/обновлять/удалять записи в таблице аудита.Легче запретить прямой доступ к базе данных и создать вашу безопасность и приложение в приложении, чем разрешить доступ к базе данных и управлять точными SQL-разрешениями. –