gpt4 book ai didi

postgresql - 在 Postgres 中 GRANT/REVOKE 时限制模式的范围

转载 作者:行者123 更新时间:2023-11-29 13:14:52 25 4
gpt4 key购买 nike

在 postgres 中,您可以GRANTREVOKE 权限,例如:

REVOKE ALL ON SCHEMA public FROM PUBLIC;
GRANT USAGE ON SCHEMA public TO <myuser>;

我的问题;如果每个数据库都有一个模式PUBLIC,那么您是要撤销还是授予这个所有 数据库?如果是这样,如果您只想更改一个数据库的模式权限怎么办?

上下文:我想为一个数据库中的一个方案GRANT SELECT, INSERT, DELETE给一个用户。我想在不连接到数据库的情况下执行此操作。或者是简单地通过处理对实际数据库的 CONNECT 权限来执行此操作的方法。因此,如果他们只能连接到一个数据库,那么您说“所有”PUBLIC 模式都没有关系吗?

最佳答案

这里有很多问题;我会尽力恢复秩序。

  1. 撤销CREATE是个好主意来自 public所有数据库中的模式。

    但您绝对必须依次连接到每个数据库才能做到这一点。

    一个漂亮的解决方案可能是您在数据库 template1 上执行此操作.然后每个新数据库都会自动正确设置,因为CREATE DATABASE复制模板数据库。

  2. 要授予用户对所有数据库中的模式的权限,您必须再次依次连接到所有数据库。

  3. REVOKE ALL也是个好主意来自 PUBLIC 的所有数据库并授予 CONNECT选择性特权。

    这一次,您可以在不连接到每个数据库的情况下执行此操作,因为数据库是共享对象 — pg_database目录可从每个数据库访问。

关于postgresql - 在 Postgres 中 GRANT/REVOKE 时限制模式的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50377747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com