/ 中存储网

MongoDB自学日记2——权限

2015-11-09 14:33:47 来源:中存储网

首先应该明确的是为什么要学MongoDB。OK,如果是仅仅出于对于流行技术的原始兴趣,可能并不能深入学习,还必须有应用需求。刚开始学习MongoDB,因为以前对其它数据库的了解也不是特别深入,所以许多概念和原理需要梳理。

本节主要是学习访问控制权限的问题。第一步就需要创建用户,手头有一些mongodb的文档,然而估计是出版时间和版本太老了,基本都说用db.addUser创建用户,结果执行不成功。原因在于我所使用的mongodb版本是3.0.6,而从2.6版本起已经deprecated了addUser这个方法,取而代之的是createUser(看来还是得多看官方手册)。

 1.连接上数据库后,切换到admin数据库。mongodb默认会有一个admin数据库,创建用户需要使用这个数据库。

>use admin

2.创建一个具有root权限的用户

复制代码
 >db.createUser(  {    user:"username",    pwd:"123456",    roles:["root"]  }  )
复制代码

3.更改用户密码

>db.changeUserPassword("username","newpassword");

4.查看用户信息

复制代码
>db.runCommand({userInfo:"username"}) {        "ok" : 0,        "errmsg" : "no such command: userInfo",        "code" : 59,        "bad cmd" : {                "userInfo" : "username"        } }
复制代码

5.登录

$mongo  -u username -p password --authenticationDatabase admin

6.验证用户,auth方法验证通过返回数值1,错误返回0。

>db.auth("username","password");

7.查看当前用户拥有权限

>db.runCommand(   {     usersInfo:"username",     showPrivileges:true   } )

有了root用户以后,可以进一步增加一些普通用户,比如只有只读权限。

复制代码
> db.createUser({     user:'xiaoh',     pwd:'123456',     roles:[     'read',     'dbAdminAnyDatabase']    } )
复制代码

我们还可以为服务器绑定IP和端口,这样在服务端限定了能够访问mongodb的IP和端口。

$mongod  --bind_ip  192.168.1.28   --port  28018