Режим выполнения хранимых процедур
Функция
Задает режим выполнения хранимых процедур.
Спецификация
<режим выполнения процедур>
::=
<от имени владельца>
::=
DEFINER
<от имени текущего пользователя>
::=
CURRENT_USER
Общие правила
-
Команда действует только на канал, по которому она подана.
-
Опция
<от имени владельца>
устанавливает режим выполнения всех внутренних SQL-запросов процедуры, созданной без опцииAUTHID DEFINER
, от имени пользователя-владельца процедуры. -
Опция
<от имени текущего пользователя>
устанавливает режим выполнения всех внутренних SQL-запросов процедуры, созданной без опцииAUTHID CURRENT_USER
, от имени текущего пользователя соединения.
Пример
username SYSTEM/MANAGER drop user USER1 cascade; create user "USER1" identified by 'USER1'; 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/USER1 execute SYSTEM.TEST_PROC(); Return value = 1