首先应该明确的是为何要学MongoDB。OK,若是是仅仅出于对于流行技术的原始兴趣,可能并不能深刻学习,还必须有应用需求。刚开始学习MongoDB,由于之前对其它数据库的了解也不是特别深刻,因此许多概念和原理须要梳理。html
本节主要是学习访问控制权限的问题。第一步就须要建立用户,手头有一些mongodb的文档,然而估计是出版时间和版本太老了,基本都说用db.addUser建立用户,结果执行不成功。缘由在于我所使用的mongodb版本是3.0.6,而从2.6版本起已经deprecated了addUser这个方法,取而代之的是createUser(看来仍是得多看官方手册)。mongodb
1.链接上数据库后,切换到admin数据库。mongodb默认会有一个admin数据库,建立用户须要使用这个数据库。数据库
>use admin
2.建立一个具备root权限的用户服务器
>db.createUser( { user:"username", pwd:"123456", roles:["root"] } )
3.更改用户密码学习
>db.changeUserPassword("username","newpassword");
4.查看用户信息ui
>db.runCommand({userInfo:"username"}) { "ok" : 0, "errmsg" : "no such command: userInfo", "code" : 59, "bad cmd" : { "userInfo" : "username" } }
5.登陆spa
$mongo -u username -p password --authenticationDatabase admin
6.验证用户,auth方法验证经过返回数值1,错误返回0。.net
>db.auth("username","password");
7.查看当前用户拥有权限code
>db.runCommand( { usersInfo:"username", showPrivileges:true } )
有了root用户之后,能够进一步增长一些普通用户,好比只有只读权限。htm
> db.createUser({ user:'xiaoh', pwd:'123456', roles:[ 'read', 'dbAdminAnyDatabase'] } )
咱们还能够为服务器绑定IP和端口,这样在服务端限定了可以访问mongodb的IP和端口。
$mongod --bind_ip 192.168.1.28 --port 28018
先写这么多吧,最后附上最近的一幅我的习做(被《黑客与画家》洗过脑...)。立个Flag在这里吧,之后每篇文章都得带一幅手绘不然不发,若哪次食言则请全部留言的网友吃饭。
1.《深刻学习MongoDB》
2.《MongoDB权威指南》
Links:
1.https://docs.mongodb.org/master/reference/built-in-roles/#database-administration-roles
2.http://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html