У меня есть хранимая процедура в Postgresql, которая содержит оператор COMMIT, и я бы хотел, чтобы пользователи имели доступ только к этой процедуре, не предоставляя им право выбирать, вставлять и т. Д. В функции я бы использовал SECURITY DEFINER, но из официальных документов https://www.postgresql.org/docs/11/sql-createprocedure.html:
Процедура SEFURITY DEFINER не может выполнять операторы управления транзакциями (например, COMMIT и ROLLBACK, в зависимости от языка).
Насколько я понимаю, это означает, что я не могу использовать SECURITY DEFINER и должен предоставлять пользователю любые права, необходимые в хранимой процедуре, чтобы позволить пользователю выполнить ее, что полностью противоречит цели предоставления пользователям только функций или процедур.
Как можно вызвать хранимую процедуру с оператором COMMIT, не имея индивидуальных грантов для всех операторов внутри процедуры?