我需要连接到我们的 AWS RDS PostgreSQL 9.5 实例,这样我就可以将citext
扩展添加到pg_catalog
架构中,以便它可用于所有架构(PG默认情况下会添加pg_catalog
到开头search_path
)。
我很容易在我的本地机器上做到这一点:
> sudo su - postgres
> psql
> \c mydatabase
> CREATE EXTENSION IF NOT EXISTS citext SCHEMA pg_catalog;
> \q
> exit
如果我使用 AWS 文档显示的直接连接登录到 RDS,permission denied for schema pg_catalog
当我尝试CREATE EXTENSION
:
psql
--host=myrdsawshostname
--port=5432
--username=myusername
--password
--dbname=mydatabase
这是我知道如何连接的唯一方法,而且我似乎只能以“myusername”而不是“postgres”连接。
我在这里做错了什么?
您尝试写入
pg_catalog
架构可能会失败,因为您在 RDS 上没有超级用户,只是一个具有有限管理员权限的角色。而且亚马逊足够聪明,可以防止用户弄乱系统目录。即:架构中没有CREATE
特权pg_catalog
。通常不建议
citext
在pg_catalog
系统架构中安装其他模块。(一些例外有模式预设。)将其安装到public
或一些专用模式。已安装扩展的“home”模式需要位于
search_path
. 手册:您可以轻松地
search_path
为一个/一些/所有用户或数据库或用户/数据库组合或临时或当前会话或一般设置: