2014-11-04 50 views
0

如何保护表中的1列从更新/删除如何从更新/删除中保护表中的1列?

用户有权访问数据库,但需要保护1列的特定表免受更新。

而不是给只读访问,将触发器工作在这种情况下?

+0

您正在使用哪些DBMS? Postgres的?甲骨文?根据DBMS,您可以简单地撤消该列的更新权限。 – 2014-11-04 13:54:31

+0

对不起.. plz考虑Oracle数据库.. – 2014-11-04 14:14:23

+0

您可以使用更新前的触发器,并在我们尝试更新列时引发错误。 – vishad 2014-11-04 14:36:21

回答

4

您不能撤消对单个列的UPDATE权限,但你可以定义可更新的列:

假设你的表有三列:column_1, column_2, column_3,你想从更新column_3您禁止some_user可以做到以下几点:

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

非常感谢:) – 2014-11-10 16:54:14