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自动将这些全局授权应用于新创建的表?
〜提前谢谢
〜肯
例如:
alter default privileges in schema public grant all on tables to u; alter default privileges in schema public grant all on sequences to u;
Description
ALTER DEFAULT PRIVILEGES
allows you to set the privileges that will
be applied to objects created in the future. (It does not affect
privileges assigned to already-existing objects.) Currently,only the
privileges for tables (including views),sequences,and functions can
be altered.You can change default privileges only for objects that will be
created by yourself or by roles that you are a member of. The
privileges can be set globally (i.e.,for all objects created in the
current database),or just for objects created in specified schemas.
Default privileges that are specified per-schema are added to whatever
the global default privileges are for the particular object type.As explained under
GRANT
,the default privileges for any object type
normally grant all grantable permissions to the object owner,and may
grant some privileges toPUBLIC
as well. However,this behavior can
be changed by altering the global default privileges withALTER DEFAULT PRIVILEGES
.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。