如何将PostgreSQL“全部放在所有表格上”应用于新表?
正如在
GRANT SELECT to all tables in postgresql的问题中所讨论的那样,从PG 9.0开始,您可以使用如下命令将所有现有表的权限批量授予用户u:
GRANT ALL ON ALL TABLES IN SCHEMA public TO u; 以u身份登录,您现在可以对预先存在的表a执行此操作: SELECT * FROM a; 但是如果你现在创建表b并执行: SELECT * FROM b; 你得到: ERROR: permission denied for relation b SQL state: 42501 这可以通过重新执行来解决 GRANT ALL ON ALL TABLES IN SCHEMA public TO u; 但是每次创建表格之后必须记住这样做是个问题. 有没有办法让PostgreSQL自动将这些全局授权应用于新创建的表? ?提前谢谢
一个可行的解决方案是改变u用户的默认权限:
例如: alter default privileges in schema public grant all on tables to u; alter default privileges in schema public grant all on sequences to u;
见:ALTER DEFAULT PRIVILEGES (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |