2014-11-04 4 views
0

Как защитить 1 столбец в таблице от Обновление/удаление?Как защитить 1 столбец в таблице от обновления/удаления?

Пользователь имеет доступ к базе данных, но ему необходимо защитить 1 столбец конкретной таблицы от обновления.

Вместо того, чтобы давать доступ только для чтения, будет триггер работать в этом случае?

+0

Какая СУБД вы используете? Postgres? Oracle? В зависимости от СУБД вы можете просто отменить привилегию обновления в этом столбце. –

+0

Извините .. PLZ считать Oracle DB .. –

+0

Вы можете использовать триггер до Update для этого и поднять ошибку всякий раз, когда мы пытаемся обновить столбец. – vishad

ответ

4

Вы не можете отменить привилегию обновления для одного столбца, но вы можете определить столбцы, которые могут быть обновлены:

Если предположить, что таблица имеет три колонки: column_1, column_2, column_3 и вы хотите запретить some_user от обновления column_3 вас можно сделать следующее:

grant select,insert on some_table to some_user; 
grant update (column_1, column_2) on some_table to some_user; 

пользователь может видеть все данные, вставлять новые строки (в том числе данные для column_3), но some_user никогда не может ничего изменить в column_3.

+0

Спасибо большое :) –

Смежные вопросы