天天看点

Mongodb3.0.6启用认证权限设置

MongoDB默认不开启授权认证,只要客户端程序能够访问MongoDB服务器,就可以与它进行连接。

但是在生产环境,一般都是需要开启授权认证的,只有经过授权的用户才能够连接到MongoDB,才允许访问相关的资源,即:用户-角色-资源~  这种模式与其它关系型数据库的权限模式基本一致,这里不做过多的解释。

要开启认证模式,首先修改MongoDB的配置文件: /etc/mongod.conf (路径可能与我不同~)

修改配置:

开启完成后重启MongoDB即可生效:

需要特别注意一点,就是在开启授权认证模式之前,需要先在MongoDB中创建一个管理员用户,MongoDB是不提供默认用户的。

下面介绍如何创建管理员用户:

1、首先切换到admin数据库,这个库的作用是用来存放MongoDB中所有的授权用户,默认这个库是不存在的,我们先切换过来,在用的时候它会自动创建。

2、创建用户,把下面代码负载进去执行。

MongoDB中内置了很多角色,我们可以直接使用。

角色可以设置多个:

role:表示角色,db:表示当前角色针对哪个数据库有效。比如设置了admin 那么这个用户的权限范围只在admin数据库有效。

比如我设置 role:"readWrite", db:"mydb" 那么这个用户只能在mydb这个数据库有读写的权限。

但是MongoDB中提供了几个全局数据库的角色,例如上面的

注意后面的AndDataBase, 如果设置了这个角色,那么意味着这个角色是针对所有数据库有效的,尽管它设置了db:"admin"。

设置完毕系统管理员用户后,我们就可以开启MongoDB中的授权认证模式了,开启模式后在此进入MongoDB的客户端:

第一步切换到admin数据库:

switched to db admin

第二步进行身份认证:

认证成功返回1,如果认证失败会提升相关的错误信息。

我们可以查看一下系统用户:

然后我们可以给具体的数据里设置授权用户了。

我们给mydb数据库设置读写的权限用户。

上面的URL配置了用户名和密码 以及要连接的数据库。