node.js - 用户需要什么角色权限才能获取 Amazon redshift DB 中的 server_version?

标签 node.js amazon-redshift dbmigrate

目前,我在 redshift 中有一个名为 master用户,它具有 super 用户权限。

analytics=# \du
                      List of roles
  Role name  |          Attributes           | Member of 
-------------+-------------------------------+-----------
 master      | Superuser, Create DB          | 
 qac         |                               | 
 rdsdb       | Superuser, Create DB         +| 
             | Password valid until infinity | 
 report_user |                               | 

但是当我执行 show server_version; 时,我收到错误。

analytics=# show server_version;
ERROR:  must be superuser to examine "server_version"

为什么我想要 show_version? 我在我的node.js应用程序中使用db-migratenode_module。但是当我尝试运行迁移脚本时,出现上述错误。 这是我的 db-migrate 详细信息:

sangeeth@sangeeth-kumar ~/Desktop/analytics-api $ ./node_modules/.bin/db-migrate up --config cfg/database.json --verbose
[INFO] Detected and using the projects local version of db-migrate. '/home/sangeeth/Desktop/analytics-api/node_modules/db-migrate/index.js'
[INFO] Using dev settings: { driver: 'pg',
  database: 'analytics',
  user: 'master',
  password: '******',
  host: '*****',
  port: '****' }
[INFO] require: db-migrate-pg
[INFO] connecting
[INFO] connected
[SQL] show server_version_num
[SQL] show server_version
[ERROR] error: must be superuser to examine "server_version"
    at Connection.parseE (/home/sangeeth/Desktop/analytics-api/node_modules/pg/lib/connection.js:553:11)
    at Connection.parseMessage (/home/sangeeth/Desktop/analytics-api/node_modules/pg/lib/connection.js:378:19)
    at Socket.<anonymous> (/home/sangeeth/Desktop/analytics-api/node_modules/pg/lib/connection.js:119:22)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at Socket.Readable.push (_stream_readable.js:208:10)
    at TCP.onread (net.js:607:20)

注意:我使用的是 postgres(pg) 驱动程序,因为 redshift 符合 postgres 标准。

有人帮帮我吗?

最佳答案

不支持

SHOW server_version;。您需要修补该库才能使用SELECT version();

我将考虑在本文档中将其明确列为不受支持。 https://docs.aws.amazon.com/redshift/latest/dg/c_unsupported-postgresql-functions.html

关于node.js - 用户需要什么角色权限才能获取 Amazon redshift DB 中的 server_version?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51422236/

相关文章:

sql - 在 redshift 中按字段排序

amazon-s3 - 查询寻址的 S3 存储桶与该集群位于不同的区域

ruby-on-rails - 在应用它们之前,如何确定 'rake db:migrate'将应用哪些更改?

heroku - Heroku 的 Redis 数据同步

javascript - 无法使用 AWS-sdk 连接到 AWS EC2

node.js - Node js 邮件喷射方法链接 stub

node.js - 如何在单个 Gulpjs 任务中添加已经缩小的文件?

sql - 文本列中的隐藏字符阻止 UNLOAD 和 COPY 在 redshift 中

mysql - Rails 和预先存在的 MySQL 数据库 : Is there an easy way to integrate database structure into Active Record?

javascript - 打包的 Electron 应用程序找不到本地模块