当我尝试在我的数据库上启用hstore时:
=> CREATE EXTENSION IF NOT EXISTS hstore;
ERROR: permission denied to create extension "hstore"
HINT: Must be superuser to create this extension.
Run Code Online (Sandbox Code Playgroud)
我的用户是不是超级用户,但是是数据库的所有者.
加载扩展需要具有创建其组件对象所需的相同权限.对于大多数扩展,这意味着需要超级用户或数据库所有者权限.运行CREATE EXTENSION的用户将成为扩展的所有者,以便以后进行权限检查,以及扩展程序脚本创建的任何对象的所有者.
什么是hstore,需要超级用户权限?它是否会影响我将其添加到数据库外部的群集部分?
进一步的混乱:
数据库用户Heroku Postgres提供的不是超级用户:
Heroku Postgres用户被授予其数据库的所有非超级用户权限.这些措施包括
SELECT,INSERT,UPDATE,DELETE,TRUNCATE,REFERENCES,TRIGGER,CREATE,CONNECT,TEMPORARY,EXECUTE,和USAGE.
但是,该用户能够CREATE EXTENSION hstore:
要创建任何支持的扩展,请使用heroku pg:psql打开一个会话并运行相应的命令:
Run Code Online (Sandbox Code Playgroud)$ heroku pg:psql Pager usage is off. psql (9.2.4) SSL …