Определение оператора задания привилегии на выполнение хранимой процедуры.
::=
::=
Опция PUBLIC
предоставляет доступ к процедуре всем пользователям БД.
Опции <имя пользователя>
и <имя роли>
предоставляют доступ к процедуре соответственно указанному пользователю БД и пользователям, которым назначена роль.
Давать права на выполнение хранимой процедуры может только ее владелец.
Привилегия EXECUTE
дает право на выполнение процедуры от своего имени (т.е. выполнять от своего имени все содержащиеся в ней SQL-запросы, как это делает предложение EXECUTE <имя хранимой процедуры>
).
Привилегия EXECUTE AS OWNER
дает право выполнять процедуру от имени ее владельца (т.е. все содержащиеся в процедуре SQL-запросы будут выполняться от имени владельца процедуры).
username SYSTEM/MANAGER create or replace table AAA(i int); create or replace procedure AAA_proc(in i int) result int code print("Name of user: " + username()); // execute direct "insert into AAA(i) values (" + itoa(i) + ");"; // return i; // end; drop user "TEST" cascade; create user "TEST" identified by 'TEST'; grant execute as owner on SYSTEM.AAA_proc to "TEST"; grant select on AAA to "TEST"; username TEST/TEST execute SYSTEM.AAA_proc(100) as owner; select * from SYSTEM.AAA;