为啥在 AWS Redshift 中对密码进行 md5 哈希处理时密码身份验证失败?
Posted
技术标签:
【中文标题】为啥在 AWS Redshift 中对密码进行 md5 哈希处理时密码身份验证失败?【英文标题】:Why is password authentication failing when md5 hashing passwords in AWS Redshift?为什么在 AWS Redshift 中对密码进行 md5 哈希处理时密码身份验证失败? 【发布时间】:2017-11-16 19:48:06 【问题描述】:我正在尝试在我的 AWS Redshift 集群上创建一个新用户。在创建用户并对密码进行哈希处理时,我遵循了the documentation,但在尝试使用真实密码登录时,我不断遇到身份验证失败。
我所做的一些示例细节:
在 Mac 上从 bash shell 创建哈希:
echo -n "my_userMyPassword1" | md5
1ce2ff3ac550ebd14b9fbf01e91d84cd
然后以超级用户身份在 redshift 集群上:
CREATE USER my_user PASSWORD 'md51ce2ff3ac550ebd14b9fbf01e91d84cd' CONNECTION LIMIT 20;
当我尝试从命令行以用户身份登录时,我收到以下错误消息:
psql -h mycluster.myregion.redshift.amazonaws.com -p 1234 -U my_user myredshiftdb
Password for user my_user:
psql: FATAL: password authentication failed for user "my_user"
FATAL: password authentication failed for user "my_user"
我使用 redshift md5 函数验证了哈希是正确的。我也在不散列密码时创建了帐户,并且可以成功登录。我尝试了密码的变体(使其超级简单和简短),但无济于事。
这是我正在使用的红移版本:
SELECT VERSION();
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.1499
(1 row)
【问题讨论】:
我认为它可能会将“md5”附加到您的密码中。看看它怎么说PASSWORD '** md5 **1ce2ff3ac550ebd14b9fbf01e91d84cd'
?不确定这是否正确。还有,你为什么用md5?
按照 AWS 文档,我有意将 md5 添加到哈希中。您有使用 Redshift 替代 MD5 的示例吗?
我没有,只是看起来很奇怪,我认为可能是错字。
【参考方案1】:
您正在创建反向的用户/密码哈希。密码在前,用户在后。
echo -n "MyPassword1my_user" | md5
【讨论】:
呃。就是这样。 :facepalm: 谢谢!以上是关于为啥在 AWS Redshift 中对密码进行 md5 哈希处理时密码身份验证失败?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AWS Datapipeline 中的 Python 脚本中提供 Redshift 数据库密码?
在 SQL (Redshift) 中对连续块进行分组以进行聚合