Welcome To Heike07's Blog.

欢迎来到Heike07官方博客

Mongodb授权管理

首先你要搞mongodb授权你首先要搞清楚你的版本

这里使用3.x版本做演示,别的版本不讨论~

1.认证方式:mongodb认证方式包括2种,进入认证,和 连接认证。

进入认证就是:进入到mnogodb后进行认证(废话)

use admin
db.auth(“myUserAdmin”, “abc123” )

连接认证就是:连接到mongodb就开始连接认证(废话)

mongo –port 27017 -u “myUserAdmin” -p “abc123” –authenticationDatabase “admin”

2.构建认证体系:你要想构建认证体系,你首先需要一个全新的mongodb,有数据的也行,唯一的要求就是没有开启认证,也就是无密码模式,故名思意就是直接可以通过 端口 +地址进行连接的mongodb无密码模式。

进入mongo环境
设置设置一个最大权限控制的管理员账户 权限为所有权限 userAdminAnyDatabase

use admin
db.createUser(
{
user: “myUserAdmin”,
pwd: “abc123”,
roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ]
}
)

有了超级管理权限后,就可以关闭数据库了。

然后在开启数据库的后面增加 –auth 例如:

mongod –port 27017 –dbpath /data/db1 –auth

启动数据库后 使用之前提过的
连接方式1进入数据库

use admin
db.auth(“myUserAdmin”, “abc123” )

连接方式2进入数据库

mongo –port 27017 -u “myUserAdmin” -p “abc123” –authenticationDatabase “admin”

进入数据库后 方可以继续设置权限:

这里根据需求如下:

设置 mytester用户,此用户有test库的读写权限,有reporting库的读权限 密码为 xyz123

首先,进入数据库test
use test
按照需求增加用户权限即:

db.createUser(
{
user: “myTester”,
pwd: “xyz123”,
roles: [ { role: “readWrite”, db: “test” },
{ role: “read”, db: “reporting” } ]
}
)

完成以上配置,再开启一个mongo客户端进行连接测试即:

mongo –port 27017 -u “myTester” -p “xyz123” –authenticationDatabase “test”

或者

mongo –port 27017
use test
db.auth(“myTester”, “xyz123” )

GET了吗!

参考文章

mongo官方文档:
https://docs.mongodb.com/v3.4/tutorial/enable-authentication/
点赞