CREATE SYNONYM privilege is good enough

Code:
declare
  2  v varchar2(1000);
  3  begin
  4  v := 'CREATE PUBLIC SYNONYM syn_name FOR schema.object';
  5  execute immediate v;
  6  end;
  7  /
Sam