无法使用 SQL Workbench/J 在 Amazon Redshift 中创建新用户

Posted

技术标签:

【中文标题】无法使用 SQL Workbench/J 在 Amazon Redshift 中创建新用户【英文标题】:Cannot create a new user in Amazon Redshift using SQL Workbench/J 【发布时间】:2017-05-13 18:15:57 【问题描述】:

我在 Amazon Redshift 中创建新用户时遇到问题。我遵循Getting Started with Amazon Redshift 上的描述,并能够使用那里描述的示例中的数据创建一个集群。我可以使用最新版本的 SQL Workbench/J(内部版本 122,2017-02-04)和来自 EC2 实例的驱动程序(兼容 JDBC 4.2)连接到集群。当我尝试创建新用户时失败:

create user dbuser25x with password 'abcD1234';

其中一件事情发生了:

    我收到确认用户已创建但没有用户的消息:

    User dbuser25x created
    Execution time: 0.04s
    

    查询失败:

    An error occurred when executing the SQL command:
    create user dbuser25x with password 'abcD1234'
    [Amazon](500310) Invalid operation: user "dbuser25x" already exists;
    1 statement failed.
    Execution time: 0s
    

    查询挂起。

在每种情况下,我都使用此语句来检查结果:

    select * from pg_user;

此用户不存在,我不知道为什么。

另一位开发人员尝试以相同的方式创建新用户并遇到相同的问题。 我尝试了来自 Troubleshooting Queries 的潜在死锁部分的解决方案 - 他们没有帮助。 我使用了一个专用的 Windows EC2 实例,在该实例上只安装了 SQL Workbench/J 以排除其他软件的影响 - 这并没有解决问题。

【问题讨论】:

除了没有出现在pg_user之外,你真的能以那个用户的身份登录吗? 我刚试过。不幸的是,我无法连接。感谢您的提示。 我收到消息:连接失败。 [Amazon](500310) 操作无效:用户“dbuser25x”的密码认证失败; 如果您尝试使用不同的(不存在的)用户名进行连接,是否会出现相同的错误?这将告诉用户名是否被识别。 错误信息是一样的。感谢您的提示。 【参考方案1】:

遇到了同样的问题,正如 Chris(上图)所说,我不得不 commit create user 操作。在 SQL Workbench/J 中,您的工具栏中有“提交”按钮,我想您也可以输入 commit 命令。

【讨论】:

谢谢,我遇到了与从未创建用户完全相同的问题,因为我正在使用手动事务管理运行我的数据库工具。【参考方案2】:

对我来说很好用:

create user dbuser25x with password 'abcD1234';

select * from pg_user;

rdsdb         1 true    true    true    ********    infinity    (null)
masteruser  100 true    true    false   ********    (null)  (null)
dbuser25x   101 false   false   false   ********    (null)  (null)

【讨论】:

我在大约 15 分钟前运行了两个查询并成功了。我能够再添加 3 个用户,并且可以在表 pg_user 中看到所有这些用户。然后突然对第四个用户的查询挂起。我运行查询'select * from pg_user;'并且四个用户都不在那里。我无法理解这一点。 不知道是不是和auto-commit有关?我认为交易不适用于CREATE USER,但你可以试试。只需在与 Redshift 建立连接时打开“自动提交”复选框即可。 它现在可以工作,我很惊讶。我昨天尝试运行命令commit,但它不起作用。据我了解,建立连接时的“自动提交”相当于每个 SQL 语句之后的commit。出于这个原因,我想使用它一段时间,看看它是否解决了问题,然后关闭问题。

以上是关于无法使用 SQL Workbench/J 在 Amazon Redshift 中创建新用户的主要内容,如果未能解决你的问题,请参考以下文章

SQL Workbench/J:运行 SQL 文件

如何在 SQL Workbench/J 中配置 sql 查询快捷方式?

在 Virtuoso 中使用 Sql Workbench/J 导入具有空数字字段的 csv 文件

如何在 SQL Workbench/J 中更改活动的数据库连接?

如何在 sql workbench / j 中添加计算列

sql workbench/j 不会在数据库资源管理器中显示任何对象