GRANT
принимает только фиксированные имена таблиц (или список таблиц). То, что вам нужно, требует dynamici c SQL, ie динамического построения оператора и его выполнения в анонимном блоке.
Обратите внимание:
do
$$
begin
execute (
select
'grant all on table '
|| string_agg (format('%I.%I', table_schema, table_name), ', ')
|| ' to police'
from information_schema.tables
where table_name like 'parcel%'
) ;
end
$$;