Режим выполнения хранимых процедур

Функция

Задает режим выполнения хранимых процедур.

Спецификация
   
< режим выполнения процедур >::=
< от имени владельца >::=
DEFINER
< от имени текущего пользователя >::=
CURRENT_USER
Общие правила
  1. Команда действует только на канал, по которому она подана.

  2. Опция < от имени владельца > устанавливает режим выполнения всех внутренних SQL-запросов процедуры, созданной без опции AUTHID DEFINER, от имени пользователя-владельца процедуры.

  3. Опция < от имени текущего пользователя > устанавливает режим выполнения всех внутренних SQL-запросов процедуры, созданной без опции AUTHID CURRENT_USER, от имени текущего пользователя соединения.

Пример
username SYSTEM/MANAGER8
drop user USER1 cascade;
create user "USER1" identified by '12345678';
grant DBA to USER1;

create or replace table TEST(i int, ch char(66));
insert into test values (1,'test record');

set session procedure execute by default as definer;

create or replace procedure TEST_PROC(IN id INTEGER) result integer
declare
  var i int;//
code
  execute "select count(*) from test;" into i;//
  return i; //
end;
grant execute AS OWNER on SYSTEM.TEST_PROC to USER1;

username USER1/12345678
execute SYSTEM.TEST_PROC();
Return value = 1