Sql предотвратить изменение строки - PullRequest
1 голос
/ 27 мая 2010

Можно ли предотвратить какие-либо изменения строки в sql?

Допустим, запись создана. Но как только он будет создан, я не хочу, чтобы запись когда-либо изменялась.

Таким образом, пользователь все еще может попытаться обновить таблицу set set column = value .. но это вызовет ошибку, не позволяющую ему что-то изменить.

Ответы [ 3 ]

3 голосов
/ 27 мая 2010

да, вы можете сделать это с помощью триггера при условии, что пользователь не сделает что-то подобное

alter table disable trigger
update table...

вы также можете запретить обновление в этом столбце, например, (SQL Server 2005 и выше)

DENY UPDATE ON OBJECT::TableName(ColumnName) TO UserNAme;
2 голосов
/ 27 мая 2010

Вы должны поставить триггер на стол.

триггер может либо заменить любые новые значения старыми значениями, молча отказать в обновлении, либо может выдать исключение пользователю, говорящее, что обновление не разрешено.

OR

вы можете назначить привилегию INSERT пользователям, но не привилегию UPDATE.

1 голос
/ 27 мая 2010

Самый простой способ - ОТМЕНИТЬ ОБНОВЛЕНИЕ НА ТАБЛИЦЕ, если SQL-сервер допускает такой точный контроль доступа.

Обратите внимание, что злоумышленник все еще может УДАЛИТЬ, а затем ВСТАВИТЬ другую «измененную» запись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...