Mongodb创建用户Error: couldn’t add user: Use of SCRAM-SHA-256 requires undigested passwords
时间: 2024-09-10 21:29:15 浏览: 134
修复 Mac brew 安装 mongodb 报 Error: No available formula with the name ‘mongodb’ 问题详解
5星 · 资源好评率100%
在MongoDB中,创建用户时遇到错误 "couldn't add user: Use of SCRAM-SHA-256 requires undigested passwords" 通常是因为在创建用户的命令中没有正确设置密码的格式。在MongoDB 4.0及以上版本中,引入了SCRAM-SHA-256作为默认的认证机制,它是一种密码散列方案,可以提供更强的安全性。
为了解决这个问题,你需要使用`createUser`命令,并且在指定密码时使用`$hidden`操作符,这样MongoDB就会使用未消化的密码格式。以下是一个创建用户的示例命令:
```javascript
db.createUser({
user: "username",
pwd: passwordPrompt(), // 或者直接使用 "yourPassword" 替换 passwordPrompt(),确保不加引号
roles: [
{ role: "readWrite", db: "yourDatabase" }
]
})
```
在这个命令中,`pwd`字段应该是一个特殊的数据类型,称为`BinData`,它允许你指定数据为未消化的密码。你可以使用`passwordPrompt()`来提示用户输入密码,或者直接在命令中指定一个字符串形式的密码(不加引号),但应确保在实际操作中密码是安全的。
注意:在生产环境中,不建议在命令中直接明文显示密码,而应该使用`passwordPrompt()`或通过其他安全的方式输入密码。
阅读全文