Subject Access rights for procedures: how much deep?
Author Andrew Guts
Hello IB support.

My database contains 3 stored procs and one table involved in some
operation:

create table orders (...);

create procedure a() as
begin
if (..) then update table orders ... ;
else insert into orders (..) values (..);
end

create procedure b() as
begin
..
execute procedure a ..;
end

create procedure C () as
begin
...
execute procedure b ...;
end

User executes only procedure C. Access rights are:

grant select on orders to Alex; /*user*/
grant execute on procedure C to Alex;
grant execute on procedure b to procedure C;
grant execute on procedure a to procedure b;
grant select, insert, update on orders to procedure a;

I have "permission denied on table orders".
When I added "grant select, insert, update on orders to procedure C" it
works as expected.
I would appreciate if anyone give me an advice about right solution.
And how to set access rights to database objects in general?

Thanks ahead

Andrew