将自动 select 授予所有表/PostgreSQL
Grant an automatic select to a all tables / PostgreSQL
我有一个生产数据库,用户可以在其中创建一组继承主 table X 的 table。 tables;
自然地使用此命令:GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only ;
这将仅应用于已创建的 tables。
目的是为所有最新的 table 应用命令。
NB : I already tried to make a trigger on tables pg_class,
pg_namespace but it's impossible and it's the same for the pg_tables
view;
您可以使用 ALTER DEFAULT PRIVILEGES
命令为新创建的对象设置默认授权,例如:
ALTER DEFAULT PRIVILEGES
FOR USER creator_role IN SCHEMA public
GRANT SELECT ON TABLES TO read_only;
顺便说一句,虽然你不能在系统目录上安装触发器,但你可以使用 event triggers 实现同样的事情(在 Postgres 9.3+ 中),它在任何 CREATE
/ DROP
/ALTER
语句。
我有一个生产数据库,用户可以在其中创建一组继承主 table X 的 table。 tables;
自然地使用此命令:GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only ;
这将仅应用于已创建的 tables。
目的是为所有最新的 table 应用命令。
NB : I already tried to make a trigger on tables pg_class, pg_namespace but it's impossible and it's the same for the pg_tables view;
您可以使用 ALTER DEFAULT PRIVILEGES
命令为新创建的对象设置默认授权,例如:
ALTER DEFAULT PRIVILEGES
FOR USER creator_role IN SCHEMA public
GRANT SELECT ON TABLES TO read_only;
顺便说一句,虽然你不能在系统目录上安装触发器,但你可以使用 event triggers 实现同样的事情(在 Postgres 9.3+ 中),它在任何 CREATE
/ DROP
/ALTER
语句。