一、背景
由于汇能器项目是基于mongodb数据库,但是mongodb数据库的连接是不需要输入密码即可登录,出于对正式环境的安全考虑,因此需对连接数据库进行添加账号管理配置
二、MongoDB权限介绍
MongoDB安装完成后,默认是不需要输入用户名密码即可登录的,正常情况下,出于安全性的考虑会设置用户名密码,目前汇能器项目无论是正式环境还是测试环境、开发环境,都没有对数据库设置密码权限,只要有一个mongodb客户端,知道数据库服务器ip和端口,就可连接数据,对数据进行任意操作;
在关系型数据库中,都有权限控制,比如可配置什么用户访问哪些数据库和数据表,对哪些表可进行增删改操作等,然而mongodb是非关系型数据库,它是否可以进行权限配置?答案是肯定的,下面通过介绍几步进行权限管理的配置:
1、MongoDB是没有默认管理员账号的,所以要先添加管理员账号,在开启权限认证。
2、切换到admin数据库,添加的账号才是管理员的账号。
3、用户只能在用户所在的数据库登录,包括管理员账号。
4、管理员可以管理所有的数据库,但是不能直接管理其它数据库,要先在admin数据库中认证才可以,也是为了 安全性考虑。
下面对汇能器开发环境进行权限配置,系统版本基于centOS系统安装的3.2.9版本的mongodb;
三、Mongodb添加管理员账号
开发环境是启动的,数据库也开启了,用命令直接进入mongodb连接
如上图所示,连接mongodb成功。
下面进行数据查看及切换数据库操作
1、输入命令:show dbs:
2、发现有两个数据库,一个local和一个rocketchat2,没有admin数据库;因此我们要创建一个admin数据库,权限管理用的就是使用admin数据库,创建admin数据库及创建用户和指定用户角色代码如下:
a. User:用户名
b. Pwd:密码
c. Roles:指定用户角色