【发布时间】:2015-09-14 23:26:23
【问题描述】:
我负责一门大学课程的 PostgreSQL 数据库,该课程有 23 个用户和 23 个数据库。每个用户应该只能访问一个数据库,如果他们尝试连接到不同的数据库,他们应该会被拒绝访问。 我已经有一个工作集,但我们必须格式化服务器。现在我正在尝试做同样的事情,但每个用户都可以访问彼此的数据库。我已经试过了:
REVOKE connect ON DATABASE group1 FROM PUBLIC;
REVOKE ALL PRIVILEGES ON DATABASE group1 FROM PUBLIC;
REVOKE ALL PRIVILEGES ON DATABASE group1 FROM group3;
我仍然可以通过任何方式连接到 group1 数据库:
psql -d group1
或
\c group1
我怎样才能阻止这种情况发生?
编辑:我使用的是 PostgreSQL 9.3.9。 我所做的是以 root 身份登录,然后通过以下方式将用户更改为 group3:
sudo su -
su group3
psql
Enter password:
\c group1
You are now connected to database "group1" as user "group3".
【问题讨论】:
-
“你”是谁?如果您以超级用户身份连接,您总是 可以访问。 (并且总是提到你的 Postgres 版本。)
-
请显示
\l+ group1和\du+ group3输出
标签: sql database postgresql ubuntu privileges