AWS RDS 扩展安装
AWS RDS Extension Installation
我正在尝试为 AWS RDS Postgres 实例中的特定用户启用一些 Postgres 扩展。
1) 我已尝试使用 rails 迁移进行部署,但没有成功。
class InstallPgTrgmContribPackage < ActiveRecord::Migration[5.1]
def change
enable_extension "fuzzystrmatch"
enable_extension "pg_trgm"
enable_extension "unaccent"
# execute "CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;"
# execute "CREATE EXTENSION IF NOT EXISTS pg_trgm;"
# execute "CREATE EXTENSION IF NOT EXISTS unaccent;"
end
end
2) 另外,尝试通过 ssh-ing 进入 postgres 并从那里创建它。
psql -h blabla.us-east-1.rds.amazonaws.com -p 5432 -U prod -d prod
prod=> CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;
returns: ERROR: permission denied to create extension "fuzzystrmatch"
HINT: Must be superuser to create this extension.
By default RDS instance role is test, and I am able to create
extension in test user. I am trying to install in prod and dev users.
通过 Elastic Beanstalk 部署的 rails 应用程序。
问题:如何将超级用户权限添加到新用户角色中?
prod 用户似乎没有超级用户权限:
如 AWS 文档所述:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.html
1. create role testuser with password 'testuser' login;
CREATE ROLE
2. grant rds_superuser to testuser;
GRANT ROLE
第 1 点已经完成,因为有产品用户
因此,您需要运行点2命令来授予权限。
我正在尝试为 AWS RDS Postgres 实例中的特定用户启用一些 Postgres 扩展。
1) 我已尝试使用 rails 迁移进行部署,但没有成功。
class InstallPgTrgmContribPackage < ActiveRecord::Migration[5.1]
def change
enable_extension "fuzzystrmatch"
enable_extension "pg_trgm"
enable_extension "unaccent"
# execute "CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;"
# execute "CREATE EXTENSION IF NOT EXISTS pg_trgm;"
# execute "CREATE EXTENSION IF NOT EXISTS unaccent;"
end
end
2) 另外,尝试通过 ssh-ing 进入 postgres 并从那里创建它。
psql -h blabla.us-east-1.rds.amazonaws.com -p 5432 -U prod -d prod
prod=> CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;
returns: ERROR: permission denied to create extension "fuzzystrmatch"
HINT: Must be superuser to create this extension.
By default RDS instance role is test, and I am able to create extension in test user. I am trying to install in prod and dev users.
通过 Elastic Beanstalk 部署的 rails 应用程序。
问题:如何将超级用户权限添加到新用户角色中?
prod 用户似乎没有超级用户权限:
如 AWS 文档所述:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.html
1. create role testuser with password 'testuser' login;
CREATE ROLE
2. grant rds_superuser to testuser;
GRANT ROLE
第 1 点已经完成,因为有产品用户
因此,您需要运行点2命令来授予权限。