在创建PostgreSQL数据库“地图”,它采用了PostGIS的扩展的过程中,通过CREATE EXTENSION postgis;
,用户“绘图者”得到以下错误:的Postgres创建扩展PostGIS的错误
permission denied to create extension "postgis"
HINT: Must be superuser to create this extension.
但用户“绘图者”是如通过命令由sudo -u postgres psql
指定的数据库所有者:
CREATE DATABASE map OWNER mapmaker;
GRANT ALL PRIVILEGES ON DATABASE map TO mapmaker;
一旦绘图者是在用户级超级用户我不再收到错误并且扩展创建让我明白了一切我所要做的就是调整permiss通过postgres用户将地图制作者分配给超级用户,但是我有兴趣知道为什么地图制作者被授予数据库地图的所有权限?扩展区别对待吗?为了使用扩展,用户必须是用户级超级用户还是可以在数据库级别分配权限?
我确实看到了cannot create extension without superuser role,但问题的答案没有解释为什么,并且很遗憾,我没有足够的评论意见,因此提出了问题。
的PostgreSQL 9.1.9的PostGIS 2.0.3