在创建使用 postgis 扩展的 postgresql 数据库“map”的过程中CREATE EXTENSION postgis;
,用户“mapmaker”得到以下错误:
permission denied to create extension "postgis"
HINT: Must be superuser to create this extension.
sudo -u postgres psql
但是用户“mapmaker”是通过命令指定的数据库所有者:
CREATE DATABASE map OWNER mapmaker;
GRANT ALL PRIVILEGES ON DATABASE map TO mapmaker;
一旦 mapmaker 成为用户级别的超级用户,我不再收到错误并创建了扩展,所以我知道我所要做的就是通过 postgres 用户将 mapmaker 的权限调整为超级用户,但我有兴趣知道为什么这是如果地图制作者被授予数据库地图上的所有权限?扩展名是否被区别对待?为了使用扩展,用户必须是用户级别的超级用户还是可以在数据库级别分配权限?
我确实看到没有超级用户角色就无法创建扩展,但问题的答案没有解释原因,不幸的是,我没有足够的评论点,因此这个问题。
PostgreSQL 9.1.9 PostGIS 2.0.3