You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SHA256加密密码创建Redshift用户失败,求排查方法

Redshift带盐SHA256密码创建失败的原因及解决方法

你的问题出在哈希输入的处理方式上——Redshift要求将盐的二进制值与明文密码的二进制值拼接后计算SHA256,而非直接拼接盐的十六进制字符串和明文密码字符串。

错误原因分析

你之前执行的sha2('ChangeThisPassword123!c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6', 256),本质是把密码字符串和盐的十六进制字符(比如c、7、2这些ASCII字符)拼接后哈希,这和Redshift验证时使用的输入完全不一致,自然无法通过登录验证。

正确操作步骤

  1. 将盐的十六进制字符串转换为二进制值(用from_hex函数)
  2. 将明文密码转换为二进制字节流(用convert_to指定UTF8编码)
  3. 拼接上述两个二进制值,计算SHA256哈希
  4. 将哈希结果转换为十六进制字符串(用to_hex),再按sha256|digest|salt格式创建用户

具体SQL示例

第一步:计算正确的SHA256摘要

SELECT to_hex(
    sha2(
        convert_to('ChangeThisPassword123!', 'UTF8') || from_hex('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6'),
        256
    )
);

第二步:使用正确摘要创建用户

假设第一步得到的正确摘要为xxxxxx...,执行:

CREATE USER exampleuser PASSWORD 'sha256|xxxxxx...|c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6';

这样生成的密码就能正常通过登录验证了。

内容的提问来源于stack exchange,提问作者Simon D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 00:36:27