首先你要搞mongodb授权你首先要搞清楚你的版本
这里使用3.x版本做演示,别的版本不讨论~
1.认证方式:mongodb认证方式包括2种,进入认证,和 连接认证。
进入认证就是:进入到mnogodb后进行认证(废话)
[success]
use admin
db.auth(“myUserAdmin”, “abc123” )
[/success]
连接认证就是:连接到mongodb就开始连接认证(废话)
[info]mongo –port 27017 -u “myUserAdmin” -p “abc123” –authenticationDatabase “admin”[/info]
2.构建认证体系:你要想构建认证体系,你首先需要一个全新的mongodb,有数据的也行,唯一的要求就是没有开启认证,也就是无密码模式,故名思意就是直接可以通过 端口 +地址进行连接的mongodb无密码模式。
进入mongo环境
设置设置一个最大权限控制的管理员账户 权限为所有权限 userAdminAnyDatabase
[danger]use admin
db.createUser(
{
user: “myUserAdmin”,
pwd: “abc123”,
roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ]
}
)[/danger]
有了超级管理权限后,就可以关闭数据库了。
然后在开启数据库的后面增加 –auth 例如:
[warning]mongod –port 27017 –dbpath /data/db1 –auth[/warning]
启动数据库后 使用之前提过的
连接方式1进入数据库
[success]use admin
db.auth(“myUserAdmin”, “abc123” )[/success]
连接方式2进入数据库
[info]mongo –port 27017 -u “myUserAdmin” -p “abc123” –authenticationDatabase “admin”[/info]
进入数据库后 方可以继续设置权限:
这里根据需求如下:
设置 mytester用户,此用户有test库的读写权限,有reporting库的读权限 密码为 xyz123
首先,进入数据库test
use test
按照需求增加用户权限即:
[danger]db.createUser(
{
user: “myTester”,
pwd: “xyz123”,
roles: [ { role: “readWrite”, db: “test” },
{ role: “read”, db: “reporting” } ]
}
)[/danger]
完成以上配置,再开启一个mongo客户端进行连接测试即:
[success]mongo –port 27017 -u “myTester” -p “xyz123” –authenticationDatabase “test”[/success]
或者
[info]mongo –port 27017
use test
db.auth(“myTester”, “xyz123″ )[/info]
GET了吗!
[successbox title=”参考文章”]
mongo官方文档:
https://docs.mongodb.com/v3.4/tutorial/enable-authentication/
[/successbox]
