如何防止架构修改通过的PostgreSQL用户

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

如何防止执行架构修改用户如添加新表,删除表中的列等,同时使用户能够进行创建,读取,更新和删除操作?

database postgresql authorization roles privileges
2个回答
0
投票

造成这种情况的最好的解决方案是使用两个用户:

  • 一个拥有架构和它的所有对象
  • 另一个被授予上的对象所需的权限(在表上的架构和序列,USAGESELECTINSERTUPDATE DELETE等)

您可以使用ALTER DEFAULT PRIVILEGES获得许可权在未来创建的所有对象。


0
投票

documentation存在的架构CREATE | USAGE,在那里的CREATE allows new objects to be created within the schema(你所需要的,以防止)和使用allows access to objects contained in the specified schema(您想保留什么)两种可能的特权。

因此,你需要REVOKE CREATE ON SCHEMA ... FROM ...GRANT USAGE ON SCHEMA ... TO ...

但是,在此之前,小心privileges granted on PUBLIC,也许你有权撤销对公众所有的权限,并将其授予必要的用户。

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