Sql 如何保护表中的1列不被更新/删除?

Sql 如何保护表中的1列不被更新/删除?,sql,database,oracle,Sql,Database,Oracle,如何保护表中的1列不被更新/删除 用户可以访问数据库,但需要保护特定表的1列不被更新 在这种情况下,触发器是否会起作用,而不是提供只读访问权限?您不能撤消单个列的更新权限,但可以定义可以更新的列: 假设您的表有三列:column\u 1、column\u 2、column\u 3,并且要禁止某些用户更新column\u 3,您可以执行以下操作: grant select,insert on some_table to some_user; grant update (column_1, colu

如何保护表中的1列不被更新/删除

用户可以访问数据库,但需要保护特定表的1列不被更新


在这种情况下,触发器是否会起作用,而不是提供只读访问权限?

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

假设您的表有三列:
column\u 1、column\u 2、column\u 3
,并且要禁止
某些用户更新
column\u 3
,您可以执行以下操作:

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

用户可以查看所有数据,插入新行(包括
列\u 3
的数据),但
某些\u用户
永远无法更改
列\u 3
中的任何内容您不能撤销单个列的更新权限,但可以定义可以更新的列:

假设您的表有三列:
column\u 1、column\u 2、column\u 3
,并且要禁止
某些用户更新
column\u 3
,您可以执行以下操作:

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

用户可以查看所有数据,插入新行(包括
column\u 3
)但
某些用户
永远无法更改
column\u 3

中的任何内容您使用的是哪种DBMS?博士后?神谕根据DBMS的不同,您可以简单地撤销该列的更新权限。对不起。。请考虑Oracle DB。您可以使用一个更新前的触发器,每当我们试图更新列时,就会引发一个错误。您使用哪种DBMS?博士后?神谕根据DBMS的不同,您可以简单地撤销该列的更新权限。对不起。。请考虑Oracle DB。您可以使用一个更新前触发器,并且每当我们试图更新列时都会引发一个错误。