A esperas de una mejor solución (aportada por otro compañero), puedes hacer un bucle en delphi y enviar los resultados a un IBScript, algo así:
El TDatabase tiene un método GetTableNames, o bien TableNames:
Código Delphi
[-]
var s:TSTringlist;
BEGIN
s := Tstringlist.create;
database1.GetTableNames(s);
for i:= 0 to s.count-1 do
ibScript1.Script.Add('Grant SELECT ' + s[i] + ' to public;');
s.free;
ibscript1.Execute;
end;
.. hecho de memoria, pero pillas la idea.
Saludos