Как защитить структуру базы данных
Все, у меня есть новое приложение, которое использует административную базу данных (SQL Server 2008 R2) для обеспечения ограничений структуры данных. Важно, чтобы структура таблиц этой базы данных поддерживалась любой ценой, и самая большая опасность того, что структура не будет поддерживаться, заключается в том, что пользователь заходит в базу данных и вручную изменяет ее.
В этой ситуации лучше всего построить контрольную сумму на таблицах, которые я хочу "защитить", и проверять их каждый раз, когда я что-то делаю в приложении? Или я лучше всего защищаю сервер? То есть создание слова TRIGGER
CREATE TRIGGER EnsureIntegrity ON ProtectedTable
FOR INSERT, UPDATE, DELETE AS
BEGIN
IF (EXISTS (Some_Condidtion)
RAISERROR(/*Some Error Message*/)
ROLLBACK TRANSACTION
END
Любые советы о том, как добиться того, чего я хочу, очень ценятся.
1 ответ
Лучший способ - ограничить доступ к ответственным сторонам. Любой, кто может войти на сервер SQL и что-то изменить в БД, должен быть на крючке, чтобы это исправить. Между этим и хорошими резервными копиями, возможно, с репликацией, вы должны быть настроены на большинство плохих случаев.