create or replace procedure MT AUTHID CURRENT_USER is
...

解决方案 »

  1.   

    在存储过程中DBA的权限是不起作用的,
    要单独赋权限的,
    在B用户中:grant select on t_user_info to A;
    还有commit最好放到循环外,当然视你的需求而定的。
      

  2.   

    如表很多,需要赋这种权限的话,有一种简便的方法:
    在sqlplus下执行:
    -----------------------------
    set heading off
    set feedback off
    spool c:\grant.sql
    select 'grant select,delete,update,insert on ' || table_name || ';' from cat
    where table_type = 'TABLE';
    spool off
    ----------------------------然后打开 c:\grant.sql ,再运行此脚本(在sqlplus中输入:@c:\grant.sql即可 )
      

  3.   

    不好意思,补充一下select 'grant select,delete,update,insert on ' || table_name || ' to A;' from cat
    where table_type = 'TABLE';