gpt4 book ai didi

PostgreSQL - 更改默认权限....在表上选择...在所有模式中

转载 作者:行者123 更新时间:2023-11-29 12:17:31 24 4
gpt4 key购买 nike

是否可以更改 PostgreSQL 角色的默认权限,这样该角色对任何模式中的任何表(现有的或将来创建的)都有 SELECT

我有 3 个角色(app_rapp_rw 的成员,它是 app_rwc 的成员)我正在尝试这个:

ALTER DEFAULT PRIVILEGES FOR ROLE app_rwc GRANT USAGE ON SCHEMAS TO app_r;
ALTER DEFAULT PRIVILEGES FOR ROLE app_rwc GRANT SELECT ON TABLES TO app_r;

但它不起作用。

SELECT has_table_privilege('app_r', 'some_schema.some_table', 'SELECT')
-- false

有没有办法在 PG 中执行此操作,还是我必须使用 IN SCHEMA 并为每个 模式重复? (呃)

ALTER DEFAULT PRIVILEGES FOR ROLE app_r IN SCHEMA some_schema GRANT SELECT ON TABLES TO app_r;

附言我确实尝试运行 ALTER DEFAULT before(和 after 也只是为了测试)创建模式和表...

附言我的角色设置灵感来自 this answer我在 this answer 中看到不必显式指定模式

更新#1 -这是我正在使用的确切角色设置:

CREATE ROLE app_rwc INHERIT CREATEDB CREATEROLE;
CREATE ROLE app_rw INHERIT;
CREATE ROLE app_r INHERIT;

GRANT app_r TO app_rw;
GRANT app_rw TO app_rwc;

-- these must be performed *before* any objects are created
ALTER DEFAULT PRIVILEGES FOR ROLE app_rwc GRANT USAGE ON SCHEMAS TO app_r;
ALTER DEFAULT PRIVILEGES FOR ROLE app_rwc GRANT SELECT ON TABLES TO app_r;
ALTER DEFAULT PRIVILEGES FOR ROLE app_rwc GRANT INSERT, UPDATE, DELETE ON TABLES TO app_rw;
ALTER DEFAULT PRIVILEGES FOR ROLE app_rwc REVOKE TRUNCATE ON TABLES TO app_rw;
ALTER DEFAULT PRIVILEGES FOR ROLE app_rwc GRANT SELECT, UPDATE ON SEQUENCES TO app_rw;

最佳答案

Is it possible to alter default priviledges on PostgreSQL role, such that role has SELECT on any table in any schema (existing or created in future)

从 9.6 版开始,没有。

关于PostgreSQL - 更改默认权限....在表上选择...在所有模式中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44835282/

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