首页 > 解决方案 > 权限未更新

问题描述

运行后

db=> GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO userx;
WARNING:  no privileges were granted for "pg_stat_statements"
GRANT

我尝试过了

drop trigger t_table on tablex;

我得到了这个结果

[42501] ERROR: must be owner of relation tablex

这是我为更改权限而运行的所有操作:

GRANT CONNECT ON DATABASE dbx to userx;
GRANT USAGE ON SCHEMA public to userx;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO userx;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO userx;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO userx;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON SEQUENCES TO userx;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON FUNCTIONS TO userx;

我可能会丢失什么?警告:没有为“pg_stat_statements”授予特权意味着什么,或者它是否在该表处停止而不添加特权?

标签: postgresql

解决方案


就像错误消息说的那样,只有表所有者(和超级用户)才能做到这一点。

TRIGGER权限允许您在表上创建触发器,但不能删除触发器。

所有权不是您可以授予的特权;你必须使用ALTER TABLE ... OWNER TO ...它。


推荐阅读