我刚刚在Ubuntu服务器上安装了一个全新的mongodb,当我尝试添加用户时出现错误
db.createUser(
{
user: "admin",
pwd: "ADYkdfd332@@33",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
2018-07-03T13:29:41.556+0530 E QUERY [thread1] Error: couldn't add user: Use of SCRAM-SHA-256 requires undigested passwords :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1437:15
@(shell):1:1
答案 0 :(得分:27)
这对我有用:
db.createUser({
user:"test1",
pwd:"test1",
roles:[
{
role:"readWrite",
db:"u8"
}
],
mechanisms:[
"SCRAM-SHA-1"
]
})
答案 1 :(得分:9)
如果使用User Management Methods,则必须设置参数passwordDigestor
。
db.createUser(
{
user: "admin",
pwd: "ADYkdfd332@@33",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ],
passwordDigestor: "<server|client>"
}
)
答案 2 :(得分:8)
在Mongo Shell中使用以下命令:
use admin
db.createUser({
user:"admin",
pwd:"abc123",
roles:[{role:"userAdminAnyDatabase",db:"admin"}],
passwordDigestor:"server"
})
您还可以参考enable authentication
答案 3 :(得分:3)
请参阅带有摘要或未摘要的here
的SCRAM-SHA-256密码创建db.createUser(
{
user: "admin",
pwd: "ADYkdfd332@@33",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ],
passwordDigestor : "<server|client>"
}
)
答案 4 :(得分:3)
仅当您远程访问它时,才会出现此错误。
如果passwordDigestor
是客户端,则mechanisms
与SCRAM-SHA-256
不兼容,只能使用SCRAM-SHA-1
。
use admin
db.createUser(
{
user: "username",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ],
mechanisms: [ "SCRAM-SHA-1" ],
passwordDigestor: "client"
}
)
如果passwordDigestor
是服务器,则mechanisms
即SCRAM-SHA-1
和SCRAM-SHA-256
都可以使用,或者即使您完全不指定它也可以使用。
use admin
db.createUser(
{
user: "username",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ],
passwordDigestor: "server"
}
)
答案 5 :(得分:0)
我正在使用Ubuntu运行Linux的Windows子系统,并收到此错误。有时存在一个问题,Windows似乎无法正确关闭mongod
上的exit
,因此您需要Ctrl+Shift+Esc
进入任务管理器并手动将其关闭。
实际上,只要mongo似乎在做任何异常的事情,这似乎就是问题所在。
然后运行mongod
。在另一个终端中,尝试再次添加您的用户。
希望能帮助某人。
答案 6 :(得分:0)
使用“数据库名称”
db.createUser(
{
用户:“用户名”,
pwd:“密码”,
角色:[{角色:“ dbOwner”,db:“数据库名称”}],
机制:[
“ SCRAM-SHA-1”
]
}
)