相关疑难解决方法(0)

为什么只有超级用户CREATE EXTENSION hstore,而不是Heroku?

当我尝试在我的数据库上启用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文档:

加载扩展需要具有创建其组件对象所需的相同权限.对于大多数扩展,这意味着需要超级用户或数据库所有者权限.运行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打开一个会话并运行相应的命令:

$ heroku pg:psql
Pager usage is off.
psql (9.2.4)
SSL …
Run Code Online (Sandbox Code Playgroud)

postgresql heroku hstore

32
推荐指数
2
解决办法
2万
查看次数

标签 统计

heroku ×1

hstore ×1

postgresql ×1