我有一个PostgreSQL示例在GCP的Cloud SQL上运行。我正在通过另一台机器上的psql客户端连接到它。连接工作正常。
但是,我想知道当您运行以下命令时会发生什么。
云SQL已经默认使用了SCRAM-SHA-256作为密码加密机制,我已经验证过了,所以不知道这个命令在做什么。
如果您有任何问题,请联系我们,我们将为您提供帮助。' '
里面的字符串是否设置为密码?如果没有,那是什么?
第二个问题是,如何以temprole
用户的身份登录?是否需要重新设置密码?
我有一个PostgreSQL示例在GCP的Cloud SQL上运行。我正在通过另一台机器上的psql客户端连接到它。连接工作正常。
但是,我想知道当您运行以下命令时会发生什么。
云SQL已经默认使用了SCRAM-SHA-256作为密码加密机制,我已经验证过了,所以不知道这个命令在做什么。
如果您有任何问题,请联系我们,我们将为您提供帮助。' '
里面的字符串是否设置为密码?如果没有,那是什么?
第二个问题是,如何以temprole
用户的身份登录?是否需要重新设置密码?
2条答案
按热度按时间bjg7j2ky1#
PostgreSQL不存储明文密码,而是存储其散列值。
password_encryption
参数确定明文密码的散列方式。现在,当您创建或更改角色时,您不仅可以设置明文密码(服务器将对它进行散列),但您也可以设置已散列的密码,这样做的好处是你不必把明文密码传输到PostgreSQL服务器上(psql
的命令\password
就是这样做的)。要登录到服务器,您需要知道明文密码。无论是谁创建了您所显示的语句中的哈希值,都将知道该密码,因此您必须在那里询问。
xwmevbvl2#
系统将该字符串识别为紧急停堆校验器的有效格式(又名“加密”密码),因此只是存储它以供将来的密码验证工作使用。如果它没有将其识别为有效格式,则它会将其视为普通密码,在储存之前先将其分解成一个验证器。从验证器返回到密码是不可行的--这是系统设计的标准之一。生成该字符串的人应该知道它代表什么密码。如果他们不知道(或不告诉你),那么你就需要猜测并幸运地获得,或者重置密码,然后才能以该用户的身份登录。
(And顺便说一句,那个密码非常容易猜到,所以如果这是一真实的情况,你最好立即去改变它)