【发布时间】:2022-01-07 05:19:50
【问题描述】:
到目前为止,我有一个名为test_user 的用户,如下图所示,该用户拥有test_db:
我想从我拥有的另一个数据库中撤销用户的权限,我们称之为main_db。
从test_user 撤消数据库main_db 上的所有内容;为什么以 {cloudsqlsuperuser} 成员的 main_user 身份连接。
基本上我只是希望main_user 只能访问main_db 和test_user 只能访问test_db。
到目前为止,我运行了revoke privilege all on database gitlabhq_production from test_user。
但是当我运行psql -U test_user -d main_db -h 127.0.0.1 -W 时,看起来我仍然能够使用test_user 直接连接到数据库main_db。我希望这会通过一个错误说用户无法连接,我还撤销了main_user 到test_db 的所有权限,但看起来我仍然能够在test_table 中插入一行到test_db 中。
P.S 我正在使用带有 Postgres 13 的 GCP Cloud SQL 实例。
我如何做到这一点?
更新
main_db、test_db、main_user、_test_user相关信息
List of roles
Role name | Attributes | Member of
---------------------------+------------------------------------------------+--------------------------------------------------------------
main_user | Create role, Create DB | {cloudsqlsuperuser}
test_user | | {}
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
---------------------+-------------------+----------+------------+------------+-----------------------------------------
main_db | main_user | UTF8 | en_US.UTF8 | en_US.UTF8 | =Tc/main_user +
| | | | | main_user=CTc/main_user
test_db | test_user | UTF8 | en_US.UTF8 | en_US.UTF8 | test_user=CTc/test_user
【问题讨论】:
-
您能否以用户身份运行任何实际查询?即列出表格?
-
我能够以 main_user 身份运行插入到 test_db 中的表中……我不希望这种情况发生……我应该只能以 test_user 身份运行该插入。那不是实际查询的一部分吗?如果我错了,请纠正我
标签: postgresql google-cloud-sql privileges cloud-sql-proxy