PostgreSQL - пользователю БД разрешено вызывать только функции

В настоящее время я 'Я использую PostgreSQL для моего приложения. Так как я пытаюсь поместить каждый SQL, который содержит транзакцию (то есть вставить, обновить, удалить), в функцию, я наткнулся на эту проблему:

Возможно ли, что пользователю базы данных может быть разрешено только вызывать функции и операторы Select-Statements, в то время как он не может вызывать операторы SQL, которые содержат транзакцию? От "вызов функции Я имею в виду любую функцию. Независимо от того, содержит ли он транзакцию или нет.

Я уже пытался создать пользователя, который может вызывать только функции и операторы выбора. Но я всегда получаю ошибку при вызове функций, которые содержат транзакции. Насколько я понимаю, dbuser нужны разрешения на запись, если он вызывает функцию, которая использует оператор вставки, обновления или удаления.

Я что-то пропустил? Этот сценарий действительно невозможен? С точки зрения безопасности это было бы действительно здорово, потому что вы в значительной степени предотвращаете SQL-инъекцию.

Ответы на вопрос(1)

Ваш ответ на вопрос