无法将所有权限授予 Postgres 上的新用户

Unable to grant all privileges to new user on Postgres

我正在 Postgres 数据库 (AWS RDS) 中创建一个新用户,并尝试向该用户授予 运行 现有数据库 public 架构中所有表的所有权限。它因以下错误而失败。我什至在以 rds_superuser (postgres) 身份登录后尝试过,但得到了同样的错误。

psql(13.3,服务器 10.15)

test_db=> \dt
              List of relations
 Schema |     Name     | Type  |    Owner     
--------+--------------+-------+--------------
 public | table1       | table | test_user
 public | table2       | table | test_user
 public | table3       | table | test_user
(3 rows)

test_db=> CREATE ROLE new_user WITH LOGIN PASSWORD 'by1ne8Cs0Z2' VALID UNTIL '2021-05-29';
CREATE ROLE

test_db=> GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO new_user;

ERROR: permission denied for relation table1

有人可以帮我吗?

编辑:找到了解决方法,但不确定这是否是最佳方法。以 postgres 用户身份登录,运行 以下查询,然后以 new_user 身份重新登录,并且能够对表进行 运行 select 查询。

test_db=> \du new_user
                                 List of roles
    Role name    |                 Attributes                  |   Member of    
-----------------+---------------------------------------------+----------------
 new_user        | Password valid until 2021-05-29 00:00:00+00 | {}

test_db=> GRANT test_user to new_user;

test_db=> \du new_user
                                 List of roles
    Role name    |                 Attributes                  |   Member of    
-----------------+---------------------------------------------+----------------
 new_user        | Password valid until 2021-05-29 00:00:00+00 | {test_user}

EDIT2:请在下面找到输出。

test_db=> \dp table1 
                               Access privileges
 Schema |    Name    | Type  | Access privileges | Column privileges | Policies 
--------+------------+-------+-------------------+-------------------+----------
 public | table1     | table |                   |                   | 
(1 row)

您必须以用户 test_user 的身份发出 GRANT 语句。

只有所有者才能授予对象权限(或已授予权限的用户 WITH GRANT OPTION)。