我正在尝试了解PostgREST教程的初始步骤。
在上述教程中,建议创建两个不同的角色web_anon和authenticationator,如下所示:
create role web_anon nologin;
grant usage on schema api to web_anon;
grant select on api.todos to web_anon;
create role authenticator noinherit login password 'mysecretpassword';
grant web_anon to authenticator;
据我所知,PostgREST 服务器从客户端接收 Rest API 请求,没有任何关于用户(角色)的信息。而且,据我所知,nologin 角色无法登录数据库。(他们可以发送查询吗?)
所以问题是:
为什么我们需要两个不同的角色?web_anon 的作用是什么,authenticator 的作用是什么?
nologin角色在 postgres 中可以做什么?
当 PostgREST 接收到一个 REST API 查询时,它使用哪个用户向数据库发送和执行该查询?