gpt4 book ai didi

Postgresql 一个 nosuperuser 无法访问另一个 nosuperuser 的所有者表

转载 作者:行者123 更新时间:2023-11-29 13:22:44 24 4
gpt4 key购买 nike

我创建了一个名为 test1 的非 super 用户。我已经给出了更新、选择、删除、插入选项。我也已经授予所有模式。

CREATE ROLE test1 WITH LOGIN PASSWORD '123456';
GRANT CONNECT ON DATABASE mydb TO test1;
GRANT ALL ON SCHEMA public FROM test1;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT INSERT, SELECT, UPDATE ON TABLES TO test1 WITH GRANT OPTION;

稍后我创建了另一个名为 test2 的非 super 用户。我已经给出了更新、选择、删除、插入选项。我已经给出了授权使用模式。

CREATE ROLE test2 WITH LOGIN PASSWORD '123456';
GRANT CONNECT ON DATABASE mydb TO test2;
GRANT USAGE ON SCHEMA public FROM test2;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT INSERT, SELECT, UPDATE ON TABLES TO test2 WITH GRANT OPTION;

当我用 test1 创建一个表时。 Test2 不访问该表。因为表的所有者是 test1。我想访问表用户 test2。我能怎么做?

最佳答案

当您发出 ALTER DEFAULT PRIVILEGES 时,新权限仅应用于新创建的对象,在本例中为表。您必须手动将权限授予已存在的表。

因此,如果角色 test1 在为角色 test2 设置默认权限之前创建了一个表,则 test1 或 super 用户必须发出以下命令:

GRANT INSERT, SELECT, UPDATE ON <table> TO test2;

关于Postgresql 一个 nosuperuser 无法访问另一个 nosuperuser 的所有者表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38956224/

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