В настоящее время я использую PostgreSQL для своего приложения. Поскольку я пытаюсь поместить каждый SQL, который содержит транзакцию (например, вставить, обновить, удалить) в функции, я наткнулся на эту проблему:
Возможно ли, чтобы пользователю базы данных разрешалось только вызывать функции и Select-Statement, пока он не может вызывать SQL-заявления, содержащие транзакцию? Под "функциями вызова" подразумевается любая функция. Независимо от того, содержит ли он транзакцию или нет.
Я уже пытался создать пользователя, который может вызывать только функции и Select-Statement. Но я всегда получаю ошибку при вызове функций, содержащих транзакции. Насколько я понимаю, dbuser нуждается в разрешениях на запись, если он вызывает функцию, которая использует инструкцию insert, update или delete.
Я что-то упустил? Этот сценарий действительно невозможен? В безопасности это было бы действительно здорово, потому что вы в значительной степени предотвращаете SQL-инъекцию в первую очередь.