Ubuntu下开启MongoDB用户权限

2018-10-26  本文已影响0人  ljh_10e3

MongoDB默认是没有开启用户权限的,如果直接在公网服务器上如此搭建MongoDB,那么所有人都可以直接访问并修改数据库数据了。 其实MongoDB本身有非常详细的安全配置准则,显然开发者也是想到了,然而他是将安全的任务推给用户去解决,这本身的策略就是偏向易用性的,对于安全性,则得靠边站了。

MongoDB有两种用户,一种是admin用户(这里以root为例),能查看所有数据库;另一种数据库用户(这里以dbuser为例),只能查看特定数据库。

首先输入mongo进入MongoDB shell命令模式:

1、在admin表中添加root用户,在dbtest表中添加user用户

            use admin

        db.addUser('root','123') #用户名:root,密码:123

            use dbtest

        db.addUser('user','456') #用户名:user,密码:123

 MongoDB所有的用户信息都是存储在admin数据库中system.users表中,截图如下:

2、修改/etc/mongodb.conf,设置auth=true

sudo vim /etc/mongodb.conf

/etc/mongodb.conf文件中本来就有配置auth=true,只需要删除前面的“#”即可。截图如下:

3、重启MongoDB

service mongodb stop#停止MongoDB服务(因为MongoDB是随开机是自启动的)

‘’service mongodb start#开启MongoDB服务

4、测试用户权限是否正常开启 

试图查看School数据库的所有集合,发现查看失败,因为dbuser是test数据库的用户,无法验证School数据库;切换到admin数据库,验证root用户名;再切换回School数据库,查看其所有集合,发现查看成功。截图如下: 

这里需要指出的是,验证用户不是切换用户,只要验证过用户,就拥有了对该数据库的操作权限,如我先验证了root用户,再验证dbuser用户(test数据库的用户),依然可以操作School数据库,因为验证过root用户,仅对当次shell模式有效,退出shell之后再进入shell需要重新验证。

上一篇下一篇

猜你喜欢

热点阅读