我是Google Cloud SQL的新手。我创建了两个具有两个新用户的postgres数据库(一个是从Web仪表板创建的,另一个是从命令行创建的)。我的目标是阻止这两个用户能够互相修改数据库,但是我无法使其正常工作。
这就是我想要的:
我已经尝试从psql提示符授予/撤消权限,但是最后我仍然能够以UserB身份在DB_A中创建/删除表。
能否实现我想要的?我想念什么吗?
答案 0 :(得分:0)
Cloud SQL上的Postgres是标准的Postgres,因此它与任何其他Postgres实例一样:
授予角色所有特权:
GRANT ALL ON <db_name> TO <role_name>;
要删除所有特权:
REVOKE ALL ON <db_name> TO <role_name>;
有关特权的Postgres docs确实提供了以下警告:
对象所有者的特殊特权(即修改权) 或销毁对象)总是隐含在所有者中,并且 无法授予或撤销
因此请记住-如果UserA拥有两个数据库,则他们可以随时对其进行修改。