【问题标题】:What role permission needed for the user to get the server_version in Amazon redshift DB?用户获取 Amazon Redshift DB 中的 server_version 需要什么角色权限?
【发布时间】:2018-12-27 13:36:51
【问题描述】:

目前我在 redshift 中有一个名为 masteruser,它具有超级用户权限。

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-migrate node_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 标准。

有人帮帮我吗?

【问题讨论】:

  • select version() 工作吗?
  • 是的 select version(); 有效! analytics=# select version(); PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.2915

标签: node.js amazon-redshift dbmigrate


【解决方案1】:

SHOW server_version; 不受支持。您需要修补库以改用 SELECT version();

我会考虑在本文档中明确列出不支持的内容。 https://docs.aws.amazon.com/redshift/latest/dg/c_unsupported-postgresql-functions.html

【讨论】:

    猜你喜欢
    • 2021-12-23
    • 2019-11-16
    • 2018-08-14
    • 2023-02-14
    • 1970-01-01
    • 2011-02-19
    • 2013-01-18
    • 1970-01-01
    • 2021-05-29
    相关资源
    最近更新 更多