mongodb在2.4以上版本对用户权限管理做了优化调整,增加了数据库的安全性,操作如下:
1.第一次安装mongodb时,发现没有admin数据库,而且addUser方法也会提示没有这个方法,新的命令为:
use admin db.createUser( { user: "root", pwd: "root", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
此时新建用户已成功。
Built-In Roles(内置角色):
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:userAdminAnyDatabase
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin)
7. 内部角色:__system。
2.用户认证
db.auth("root","root")
认证返回1表示成功。
3.退出当前链接,重新连接mongo,命令为:
mongo -u root -p root --authenticationDatabase admin
use test;
db.createUser(
{
user:"testuser",
pwd:"testuser",
roles:[
{role:"dbOwner",db:"test"}
]
}
)
db.auth("testuser","testuser")
5.修改密码,命令为:
use admin
db.changeUserPassword("testuser", "pwd")
其他命令
1.删除用户,命令为:
db.dropUser("testuser");
返回true,表示删除成功。
2.查看当前用户
show users
3. 查看整个mongodb的用户
use admin
db.system.users.find()
其他常见的操作建议去官网查看相关文档:http://docs.mongodb.org/master/