Hai bisogno del privilegio CREATED ANY SYNONYM per farlo come A, quindi
GRANT CREATE ANY SYNONYM TO A;
EDIT:per evitare QUALSIASI privilegio, procedere come segue:
a) come A:
GRANT SELECT ON mytable1 TO B;
GRANT SELECT, INSERT, UPDATE, DELETE ON mytable2 TO B;
b) come B:
CREATE SYNONYM a_mytable1 FOR A.mytable1;
CREATE SYNONYM a_mytable2 FOR A.mytable2;