问题描述
我正在尝试在我的 mongodb 实例上运行 ycsb(在云中运行)。在 mongodb 方面,我创建了两个具有两个非常广泛的权限范围的用户:
> show users
{
"_id" : "admin.admin","user" : "admin","db" : "admin","roles" : [
{
"role" : "clusteradmin","db" : "admin"
},{
"role" : "dbAdminAnyDatabase",{
"role" : "userAdminAnyDatabase","db" : "admin"
}
],"userId" : UUID("99509f21-0ca3-4e3d-b585-dd7455128fa2"),"mechanisms" : [
"SCRAM-SHA-256"
]
}
{
"_id" : "admin.ycsb","user" : "ycsb","userId" : UUID("96b184ee-759c-4de8-82f5-93ff62b59f23"),"mechanisms" : [
"SCRAM-SHA-256"
]
}
$ bin/ycsb.sh load mongodb -s -P workloads/workloada -p recordcount=500000 -threads 16 -p mongodb.url="mongodb://admin:<password>@<ip>:27017/admin?w=1" -p mongodb.auth="true"
com.mongodb.MongoCommandException: Command Failed with error 13 (Unauthorized): 'not authorized on ycsb to execute command { insert: "usertable",ordered: true,writeConcern: { w: 1 },$db: "ycsb",$clusterTime: { clusterTime: Timestamp(1626190349,1),signature: { hash: BinData(0,42C9FF75F94BA394E2EE114DE31ED49002602D1E),keyId: 6983987685132075011 } },lsid: { id: UUID("f5d018fb-f89b-4b9f-ae65-6edf04b87536") } }' on server <ip>:27017. The full response is { "operationTime" : { "$timestamp" : { "t" : 1626190349,"i" : 1 } },"ok" : 0.0,"errmsg" : "not authorized on ycsb to execute command { insert: \"usertable\",$db: \"ycsb\",lsid: { id: UUID(\"f5d018fb-f89b-4b9f-ae65-6edf04b87536\") } }","code" : 13,"codeName" : "Unauthorized","$clusterTime" : { "clusterTime" : { "$timestamp" : { "t" : 1626190349,"signature" : { "hash" : { "$binary" : "Qsn/dflLo5Ti7hFN4x7UkAJglr4=","$type" : "00" },"keyId" : { "$numberLong" : "6983987685132075011" } } } }
有趣的是它向用户 ycsb 抱怨,但是我在所有可能的地方都提供了 admin。如果我将 url 更改为 "mongodb://admin:<password>@<ip>:27017/aaaa?w=1"
,那么我将收到与用户 aaaa
相关的错误,但它永远不适用于管理员。这就是我创建新用户 ycsb
的原因,但是命令:
$ bin/ycsb.sh load mongodb -s -P workloads/workloada -p recordcount=500000 -threads 16 -p mongodb.url="mongodb://admin:<password>@<ip>:27017/ycsb?w=1" -p mongodb.auth="true"
或
$ bin/ycsb.sh load mongodb -s -P workloads/workloada -p recordcount=500000 -threads 16 -p mongodb.url="mongodb://ycsb:<password>@<ip>:27017/ycsb?w=1" -p mongodb.auth="true"
失败,错误与上述完全相同。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)