我正在编写一个应用程序,我想知道是否可以在数据库端(Oracle)而不是应用程序端获得此数据权限配置。
它基本上与某些表相关,这些表必须存储无法在输入后一天编辑的历史数据.
表十
字段:
对于每一行,如果(当前日期= MyDate),则允许编辑。否则,不行。
可以吗?是否需要使用Oracle标签安全?
我在寻找可以作为访问权限来管理的东西(授权/撤销.)管理员可以创建、授予或撤销对用户或角色的此类权限。
谢谢。
发布于 2015-07-13 12:23:05
行级触发器应该能做到这一点。
create or replace trigger my_trigger
before update on my_table
for each row
begin
-- Only compare the date part (trunc removes the time)
if trunc(:old.mydate)!=trunc(sysdate)
then raise_application_error(-20000,'Updates only allowed on the day of entry');
end if;
end;当然,在午夜之前添加的条目编辑时间非常短。此外,您应该以某种方式禁用更新mydate字段的可能性。触发器中会有一些额外的线来处理这个问题。
https://stackoverflow.com/questions/31382729
复制相似问题