Сценарий заключается в том, что наш клиент владеет и управляет системой (мы ее написали), размещенной у их клиентов. Их клиенту не разрешено изменять любые данные в базе данных за системой, но они могут изменять данные, если они выбрали, поскольку они имеют полные права администратора (сервер закупается ими и размещается на их территории).Защита данных базы данных
Требование - получать уведомления, если они изменяют любые данные. На данный момент, пожалуйста, игнорируйте удаление данных, это обсуждение касается поправок к данным в таблицах.
Мы используем Linq to Sql и переопределили контекст данных, чтобы для каждого считывания данных мы сравнивали хэш данных строк с сохраненным хешем, ранее сделанным во время вставки/обновления, хранящимся в каждой строке в стол.
Мы обеспокоены масштабируемостью, поэтому я хотел бы знать, есть ли у кого-либо другие идеи. Мы пытаемся получить уведомление об изменениях данных в SSMS, запросы запускаются непосредственно на db и т. Д. Кроме того, если кто-то остановил наш сервис (службу Windows), при запуске нам нужно было знать, что строка была изменена. Есть предположения?
EDIT: Позвольте мне пояснить, как я мог быть более ясным. Мы не обязательно пытаемся остановить внесенные изменения (это невозможно, так как они имеют полный доступ). Узнайте больше, если они изменят данные.
Независимо от того, что вы делаете для блокировки доступа на SQL Server, вы не сможете их остановить, поскольку локальные администраторы на сервере: 1. остановить SQL-сервер, 2. установить второй экземпляр SQL Server, включая себя в роли dbadmins, 3. добавление базы данных в новый экземпляр. В конце концов они имеют физический доступ, поэтому могут получить данные. Лучше думать о работе * с * вашими клиентами и помнить, кто оплачивает счет. – Richard
Я не думаю, что вы сможете это сделать, у них есть доступ к оборудованию. Они могут изменить это по своему усмотрению, и когда дело доходит до него, вся безопасность сохраняется на оборудовании. – Liam
Интересный комментарий Ричард, наш клиент попросил нас сделать это - я бы подумал, что работает с «нашим клиентом». Но спасибо за совет. –