在 cloudsql postgres 上授予 rw 权限

use*_*519 5 postgresql google-cloud-sql

我有这些用户:

postgres | Create role, Create DB | {cloudsqlsuperuser}
proxyuser | Create role, Create DB | {cloudsqlsuperuser}
qa|Create role, Create DB | {cloudsqlsuperuser}
Run Code Online (Sandbox Code Playgroud)

还有这些表:

                List of relations
 Schema |        Name        | Type  |   Owner
--------+--------------------+-------+-----------
 public | member_preferences | table | proxyuser
 public | message_queue      | table | proxyuser
 public | pubsub_queue       | table | proxyuser
Run Code Online (Sandbox Code Playgroud)

我目前以 postgres 用户身份登录,并希望授予 qa 用户权限以读取和写入任何这些表以及将来在该模式中创建的任何表。

我试图遵循这一点

但是,当我运行GRANT SELECT ON ALL TABLES IN SCHEMA public TO qa; 它时, 它会响应: ERROR: permission denied for relation message_queue

我该如何进一步解决这个问题?我错过了什么?

PostgreSQL 9.6.1 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4, 64-bit 是实例显示的版本

更新:

我必须首先以生成表的代理用户身份登录,才能向其他用户授予读写权限。这真的很不舒服,因为所有用户都cloudsqlsuperuser应用了角色。因此,我希望表上的授权可以从这些用户中的任何一个向其中任何一个用户工作。

eam*_*234 1

我遇到了一个可能与您的问题类似的问题,现已通过以下方法解决:

  • 以您在设置实例时创建的第一个用户身份登录(不是 postgres)
  • 使用该用户向后续用户授予权限

谷歌似乎授予第一个用户所有权限,但不授予后续用户......也许?!