GRANT EXECUTE ON FUNCTION betya_ref."func_GetBetTypes"() TO public;
cobriria. Exceto que você nem precisa disso. O manual:
Não há necessidade de
GRANT mais privilégios na função . O GRANT para postgres é apenas ruído também, porque postgres é um superusuário que ignora privilégios. Você também:
GRANT USAGE ON SCHEMA betya_ref TO betya_users;
É
betya_users deveria ser o mesmo que dummy_users ?E você
GRANT dummy_users TO dummy_user (singular)? Você também:
GRANT SELECT ON TABLE betya_ref."tbl_BET_TYPES" TO `dummy_user`
diretamente ou indiretamente? Privilégios para uma função não cobre privilégios nas tabelas envolvidas, a menos que você faça a função
SECURITY DEFINER . Nesse caso, certifique-se de ler o capítulo "Escrevendo SECURITY DEFINER Funciona com segurança"
no manual. Não vejo uma mensagem de erro, no entanto. Com privilégios ausentes, deve haver uma mensagem de erro.