如果在创建用户或更改角色时未指定 ENCRYPTED ,我想知道PostgreSQL使用的默认加密方法(如果有)是什么。
我在PostgreSQL网站上阅读了以下内容:
密码存储加密 默认情况下,数据库用户密码存储为MD5哈希值,因此管理员无法确定分配给用户的实际密码。如果MD5加密用于客户端身份验证,则未加密的密码甚至不会临时存在于服务器上,因为客户端MD5会在通过网络发送之前对其进行加密。
但我不确定是否仅在我创建/更改角色/用户时使用 ENCRYPTED 时才使用MD5加密方法。
我正在使用PostgreSQL 9.5
由于
答案 0 :(得分:2)
来自the docs
这些关键词控制密码是否以加密方式存储在系统目录中。 (如果两者都未指定,默认行为由配置参数
password_encryption
确定。)如果显示的密码字符串已经是MD5加密格式,则按原样加密存储,无论是否指定了ENCRYPTED或UNENCRYPTED(因为系统无法解密指定的加密密码字符串)。这允许在转储/恢复期间重新加载加密密码。
password_encryption
defaults to true.,但您可以使用SHOW password_encryption
进行检查。
密码存储加密默认情况下,数据库用户密码存储为MD5哈希值,因此管理员无法确定分配给用户的实际密码。如果MD5加密用于客户端身份验证,则未加密的密码甚至不会临时存在于服务器上,因为客户端MD5会在通过网络发送之前对其进行加密。