Define the procedure like this sample to make that invoker right. That means the user who is calling / invoking the procedure has all the right not the definer (the user who has defined the procedure and granted the priviliges.)
Code:
create or replace procedure deptins ( dno dept.deptno%type, dn dept.dname%type, lc dept.loc%type )
authid current_user
is
begin
insert into dept values(dno,dn,lc);
dbms_output.put_line('one row inserted......!');
commit;
exception
when dup_val_on_index then dbms_output.put_line('duplicate value......!'); end;