Режим выполнения хранимых процедур
Функция
Задает режим выполнения хранимых процедур.
Спецификация
< режим выполнения процедур >
::=
< от имени владельца >
::=
DEFINER
< от имени текущего пользователя >
::=
CURRENT_USER
Общие правила
-
Команда действует только на канал, по которому она подана.
-
Опция
< от имени владельца >
устанавливает режим выполнения всех внутренних SQL-запросов процедуры, созданной без опцииAUTHID DEFINER
, от имени пользователя-владельца процедуры. -
Опция
< от имени текущего пользователя >
устанавливает режим выполнения всех внутренних 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