Oops, you are right, but I think this might just work.

Here is a link to the CREATE TRIGGER syntax:

http://otn.oracle.com/doc/oracle8i_8...h4h2.htm#40704

I would wrap the grant in an AUTONOMOUS TRANSACTION like:

PROCEDURE table_grant(table_name IN VARCHAR2)
IS
PRAGMA AUTONOMOUS_TRANSACTION;
error_tracking VARCHAR2(10);
BEGIN
execute immediate 'grant select on ' || table_name || ' to user2;'
END table_grant;


Then create a trigger that calls the procedure. I think it might work. No garuntees :-)