У меня есть первичные ключи для таблицы моей базы данных для удаленных записей, я хочу проверить, кто удалил эти записи. Мое приложение использует членство asp.net для аутентификации пользователей. никто не регистрируется на SQL-сервере, кроме меня.SQL проверить, кто удалил строки и восстановить их
Я не администратор базы данных, так что это сбивает с толку для меня, найдено this, но это сбивает меня с толку. также найдены некоторые инструменты, такие как red-gate и apex-sql, но red-gate работает только с SQL 2000.
Вы хотите восстановить (восстановить) строки SQL ... это не слишком просто - не невозможно, но его нетривиально. Если у вас есть контроль над своим приложением, то почему вы просто не ограничиваете операцию удаления на основе роли пользователя, и если она продолжается, запишите эти данные в таблице аудита. Или (и это то, что я делаю), фактически не удаляйте записи. Вместо этого есть флаг состояния (или перечисление), который указывает, активна ли запись или нет. Есть много способов кожи этой кошки. Если у вас нет контроля над приложением, то сохраненный процесс в операции удаления может быть способом. – robnick
Являются ли эти строки физически удалены из таблиц? если да, то будет полезно восстановить их, если у вас нет резервной копии базы данных, IMO добавляет столбец IsDeleted в столбец и столбец DeletedBy, чтобы сохранить, кто удалил строку, а для восстановления просто измените поле IsDeleted. –
@robnick: Да, у меня есть полный контроль над приложением, я также ограничил пользователей и роли, но когда мы провели аудит, было обнаружено, что некоторые записи были удалены. я нашел способ, с помощью которого пользователи могут удалять записи, но очень много времени, чтобы полностью удалить основную дочернюю запись. Теперь я планирую разместить файл журнала каждой операции, выполняемой в приложении в формате xml. но теперь мне нужно выяснить, кто их удалил. Я обновил дату, запросил timecreated, последнее обновление и последнее обновление. но информация об исключении отсутствует. –