таблицам никому не даётся, лишние поля тоже;
подскажите как это реализовывается в postgres?
допустим вставка в табличку должна происходить только в рамках функции. даю юзеру права на функцию, но на вставку в таблицы тоже просит права
Функции даются права SECURITY DEFINER. Т.е. она работает от имени владельца базы, а запускать её могут не все.
Вы только обязательно прочитайте "Writing SECURITY DEFINER Functions Safely" в https://www.postgresql.org/docs/current/sql-createfunction.html , а то запросто можно писать их совсем не secure.
Обсуждают сегодня