已授予 Postgres 角色但因关系错误而拒绝获得权限

Postgres role granted but getting permission denied for relation error

我正在尝试为数据收集端点创建只写角色。

我的设计计划是:

  1. 创建只写角色,
  2. 将用户分配给该角色,
  3. 让端点后面的应用程序使用该角色

我已经创建了角色

CREATE ROLE new_write_only WITH
   NOLOGIN
   NOSUPERUSER
   INHERIT
   NOCREATEDB
   NOCREATEROLE
   NOREPLICATION

我已经创建了用户

CREATE USER " + user_name + "
   VALID UNTIL 'infinity'
   ENCRYPTED PASSWORD '" + password + "'

我将用户分配给角色

GRANT new_write_only TO " + user_name + "

然后我将 INSERT 权限分配给角色

GRANT INSERT ON target_table TO new_write_only

但是当我运行下面为user_name

INSERT INTO target_table (col_1, col_2, col_3) VALUES ('123abc', '{}', '2018-02-22 10:45:01.845539')

我明白了

permission denied for relation target_table

当我运行与table所有者相同时,没问题。

我还需要 GRANT USAGE sequence

GRANT USAGE ON SEQUENCE target_table_row_id_seq TO new_write_only;