撤销了数据库的所有权限,但用户仍然可以创建表

问题描述 投票:0回答:1

我是 Postgresql 的新手,这就是为什么我无法弄清楚这里的一些权限。

名为

Denemedb23
的数据库已创建。我创建了用户
NoxUser

我执行了这些命令:

  1. REVOKE ALL PRIVILEGES ON DATABASE Denemedb23 FROM public;
  2. GRANT CONNECT ON DATABASE Denemedb23 TO NoxUser;

我希望

Noxuser
只是能够登录数据库,他不应该能够创建表/函数等。但是
NoxUser
可以在数据库中创建表。

你能帮我找出原因吗?

database postgresql crud privileges
1个回答
0
投票

PostgreSQL 中的 CONNECT 权限允许用户建立与数据库的连接,但它不为用户提供创建表或执行其他任务的权力。

在您的实例中,您已向 NoxUser 授予 CONNECT 权限,并删除公共角色的所有数据库权限。但是,为了创建表,需要对架构具有 CREATE 权限。

因此,请确保用户对架构没有 CREATE 权限,以实现允许 NoxUser 连接到数据库但阻止他们创建表的目标。

运行这些命令,这些命令保证虽然 NoxUser 可以连接到 Denemedb23 数据库,但无法在公共架构中创建表。

REVOKE CREATE ON SCHEMA public FROM public;

GRANT CONNECT ON DATABASE Denemedb23 TO NoxUser;

希望对你有帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.