Usuários com privilégios EXECUTE para funções receberão um erro ao tentar executar a função, se não tiverem privilégios nos objetos referenciados na função.
Criei uma função my_function. Dentro dela, seleciono/insiro/atualizo/excluo dados de uma tabela my_table. Em seguida, concedo o privilégio EXECUTE a outro usuário, "user1".
Entretanto, quando o usuário1 tenta executar a função, ela falha com a mensagem "permissão negada para a tabela my_table".
Não quero dar permissão ao usuário user1 para acessar a tabela my_table diretamente. Esse é o propósito de criar a função my_function, pois quero controlar quais dados o user1 pode ver/modificar.
Isso é uma limitação (defeito) do Postgres? Para mim, isso é um grande problema de segurança/privacidade. Existe uma maneira de superar isso? Ou temos que conviver com isso?
Minha versão do Postgres é 15.x