splitVector "errmsg" : "not authorized on test to execute command

mongodb开启权限之后 

splitVector 需要的权限。

user: test_da

db: test

拥有管理元权限 都不能执行成功:

> db.system.users.find();

{ "_id" : "admin.dba", "user" : "dba", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "q5TKyUEuYqP9hgTbrCsITQ==", "storedKey" : "6g15leywZRsVMDldLi+uzTypFqs=", "serverKey" : "JWcdgRShUZMcEJk+vh71E11zoXc=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
{ "_id" : "test.test_da", "user" : "test_da", "db" : "test", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "y+IxIWUp50tA/7V6WPsEsw==", "storedKey" : "8UyEZA3HkcqbMOt0Fbrsjs/M090=", "serverKey" : "Zdbm+6bujOMJnDvILZvmEFfuxJ0=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "readWriteAnyDatabase", "db" : "admin" }, { "role" : "dbAdminAnyDatabase", "db" : "admin" } ] }

{ "_id" : "admin.test_da", "user" : "test_da", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "hc4oe75lJQynskBcK94s1g==", "storedKey" : "IV0vwdd1Yo7YqraHAHcsd0I6ypY=", "serverKey" : "8bv/5MH5EuEvlvuuMpT8//rzGeg=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "readWriteAnyDatabase", "db" : "admin" }, { "role" : "dbAdminAnyDatabase", "db" : "admin" }, { "role" : "__system", "db" : "admin" } ] }


报错信息:

> db.runCommand({splitVector: "test.nxtest_full", keyPattern: {_id: 1}, maxChunkSizeBytes: 32000000}) ;
{
        "ok" : 0,
        "errmsg" : "not authorized on test to execute command { splitVector: \"test.nxtest_full\", keyPattern: { _id: 1.0 }, maxChunkSizeBytes: 32000000.0 }",
        "code" : 13
}


解决办法:

use test
db.updateUser("test_da", {
                   roles : [
                      { role: "readWrite", db: "test" },
                      { role : "clusterManager", db : "admin"  }
                   ]

              })


只需要给 clusterManager 角色就可以了, 而不是管理员角色就拥有所有权限。






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值