Ruby on Rails插入错误*****PG::不充分特权:错误:关系发票的权限被拒绝



我继承了一个web应用程序项目,ruby on rails背后的所有隐含魔力有时仍然让我着迷。我创建了两个新表和关联的控制器——invoice_items和invoice_items,它们之间有一个外键。在我的rails应用程序中,当插件崩溃时,我会处理它。

PG::InsufficientPrivilege: ERROR:  permission denied for relation invoices 
: INSERT INTO "invoices" ("created_at", "invoice_item_id", "quantity", "amount", "description", 
"person_id", "effective_date", "schedule") VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING "id" 
app/controllers/registrations_controller.rb:22:in `confirm_bill' 

我是rails/Postgres的新手。我希望看到">发票的权限被拒绝"。在这种错误上下文中,术语关系是否可以与术语互换?如果没有,如何授予关系权限?我提供了invoice_item_id,因此不需要加入invoice_id。当我作为app_student(rails用户(登录时,我还可以在表上手动插入。

有很多关于将所有权限授予用户的帖子,但我试图遵循最小权限的原则。应用程序用户只需要插入,因为另一个流程将提取发票并进行处理。据我所知,没有其他需要额外权限的内容。

GRANT INSERT ON TABLE public.invoices TO app_student;

为什么我的ruby on rails用户的权限不足?

一时兴起,我将选择权限授予了rails应用程序用户。我仍然不知道为什么,但这解决了我的问题。rails用户必须进行一些后续操作才能看到插入成功。那更多的铁轨是"魔法"吗?

GRANT SELECT, INSERT ON TABLE public.invoices TO app_student;

相关内容

最新更新