由于某种不可描述的原因,我需要删除mongo的一个数据库,但是我手上的账号的权限很尴尬:
下面是我的账号权限
> show users;
{
"_id" : "admin.admin",
"user" : "admin",
"db" : "admin",
"roles" : [
{
"role" : "readWriteAnyDatabase",
"db" : "admin"
}
]
}
然后:
> db.dropDatabase()
{
"ok" : 0,
"errmsg" : "not authorized on cld_edu to execute command { dropDatabase: 1.0 }",
"code" : 13,
"codeName" : "Unauthorized"
}
我想着改一下权限呢?结果...
> db.grantRolesToUser('admin',[{role:'root',db:'admin'}])
这tm就很尴尬了..反正就干啥都不成
> show users;
2019-10-30T14:47:47.370+0800 E QUERY [thread1] Error: not authorized on admin to execute command { usersInfo: 1.0 } :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1539:1
shellHelper.show@src/mongo/shell/utils.js:797:9
shellHelper@src/mongo/shell/utils.js:704:15
@(shellhelp2):1:1
> db.system.users.find()
Error: error: {
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { find: \"system.users\", filter: {} }",
"code" : 13,
"codeName" : "Unauthorized"
}
最后,哥灵光一闪
$ ps -e | grep mongod
3265 ? 17:03:42 mongod
然后$ kill -2 3265
杀掉
再mongod --config /etc/mongod.conf
重启
mongo
进入shell
> db.dropDatabase()
{ "dropped" : "cld_edu", "ok" : 1 }
嘿嘿嘿:smile:
然后关掉mongo服务> db.shutdownServer()
再把带授权开启服务
$ mongod --auth --config /etc/mongod.conf
哈哈哈哈 我真他娘的是个天才
网友评论