【发布时间】:2013-10-05 01:33:47
【问题描述】:
在通过CREATE EXTENSION postgis;创建使用postgis扩展的postgresql数据库“map”的过程中,用户“mapmaker”得到以下错误:
permission denied to create extension "postgis"
HINT: Must be superuser to create this extension.
但是用户“mapmaker”是sudo -u postgres psql通过命令指定的数据库所有者:
CREATE DATABASE map OWNER mapmaker;
GRANT ALL PRIVILEGES ON DATABASE map TO mapmaker;
一旦 mapmaker 是用户级别的超级用户,我就不再收到错误并且扩展程序已创建,所以我知道我所要做的就是通过 postgres 用户将 mapmaker 的权限调整为超级用户,但我很想知道为什么如果地图制作者被授予数据库地图的所有权限,情况是否如此?扩展名是否被区别对待?为了使用扩展,用户必须是用户级别的超级用户还是可以在数据库级别分配权限?
我确实看到了cannot create extension without superuser role,但问题的答案没有解释原因,不幸的是,我没有足够的评论点,因此提出了这个问题。
PostgreSQL 9.1.9 PostGIS 2.0.3
【问题讨论】: