随着版本的更新,对在使用mongodb的业务也进行了版本升级,但是在drop掉一个数据库时,问题来了,原来的用户随着删除库也被删除掉,但是再想通过原来的语法db.addUser()添加,一直报错,提示用db.createUser()命令创建。
首先如果在除admin库之外的用户通过db.addUser()添加是不会成功的。
我删除了原admin库的root用户,通过db.createUser()创建:
db.createUser(
{
user:"root",
pwd:"root",
roles:
[
{
role:"userAdminAnyDatabase",
db:"admin"
}
]
}
);
切换到其他库删除原用户
use test
db.system.users.remove({user:"test"});
或者
db.dropUser("test")
新建用户
db.addUser('test','test123');
使用以上旧的命令会有warning,不过还是可以创建成功
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser’ instead
建议还是通过以下命令创建
db.createUser(
{
user:"test",
pwd:"test123",
roles:
[
{
role:"dbOwner",
db:"test"
}
]
}
);
请参考:db.createUser() 语法
现在2.6有了role的概念,有自带的role,也可以根据需要新建role,赋予一个用户,这里不再详解,查看有哪些role,使用show roles即可
role管理请参考:role管理