日期:2014-05-16 浏览次数:20508 次
Oracle 调用者和定义者权限 一、第一种情况,PL/sql程序的所有者或定义者保留程序执行的全部权限。可以通过在命名程序 头部分中使用 AUTHID DEFINER 关键字来实现 任何用户接收到运行以这种方式编译的程序的权限后,将会以程序所有者的身份运行该程序。 --发出定义者权限 create as replace function hr.quarterly_sales AUTHID DEFINER as Begin end; 第二种情况 在程序头部分中使用 AUTHID CURRENT_USER 关键字 改关键子将指示Oracle使用调用者的权限来执行程序。保存点、提交和事务回滚 DECLARE cursor c_nums is select * from tb_sql; BEGIN savepoint assign_nums; for r_num in c_nums loop update tb_sql set num5=num5+10000 where id=r_num.id; end loop; Exception when others then rollback to assign_nums; END; 锁定 select for update set transaction read only set transaction isolation level serializable lock table declare lv_num1 number; CURSOR c_nums is select * from tb_sql for update; begin update tb_sql set num4=num4+40000; end; Oracle 调用者和定义者权限 一、第一种情况,PL/sql程序的所有者或定义者保留程序执行的全部权限。可以通过在命名程序 头部分中使用 AUTHID DEFINER 关键字来实现 任何用户接收到运行以这种方式编译的程序的权限后,将会以程序所有者的身份运行该程序。 --发出定义者权限 create as replace function hr.quarterly_sales AUTHID DEFINER as Begin end; 第二种情况 在程序头部分中使用 AUTHID CURRENT_USER 关键字 改关键子将指示Oracle使用调用者的权限来执行程序。 --发出调用者权限 create as replace function hr.quarterly_sales AUTHID CURRENT_USER as Begin end;
--发出调用者权限create as replace function hr.quarterly_salesAUTHID CURRENT_USERasBegin end;