无法使用 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 查询快捷方式?
在 Virtuoso 中使用 Sql Workbench/J 导入具有空数字字段的 csv 文件