AFAIK skal du gøre bevillingsobjektet ét ad gangen.
Typisk vil du bruge et script til at gøre dette, noget i retning af:
SELECT 'GRANT ALL ON '||table_name||' TO BOB;'
FROM ALL_TABLES
WHERE OWNER = 'ALICE';
Og lignende for andre db-objekter.
Du kan indsætte en pakke i hvert skema, som du har brug for til at udstede bevillingen fra, som vil gå gennem alle opkald til hver GRANT-erklæring via en EXECUTE IMMEDIATE.
f.eks.
PROCEDURE GRANT_TABLES
IS
BEGIN
FOR tab IN (SELECT table_name
FROM all_tables
WHERE owner = this_user) LOOP
EXECUTE IMMEDIATE 'GRANT SELECT, INSERT, UPDATE, DELETE ON '||tab.table_name||' TO other_user';
END LOOP;
END;