mongoDB Linux 认证配置、重置密码、远程登录配置详解

一.配置用户

1.启用、关闭认证
vi /etc/mongod.conf

//注释这两句 => 关闭认证
#security:
# authorization: enabled

//打开这两句 => 启用认证
security:
 authorization: enabled
2.远程、本地登录
vi /etc/mongdo.conf

bindIp 127.0.0.1 => 直接mongo --port 27017 -u [USERNAME] -p [PASSWORD] ... 可进入mongo shell

bindIp 192.168.130.10p => 需要加--host mongo --port 27017 -u [USERNAME] -p [PASSWORD] --host 192.168.130.109 ...
3.创建用户

a.系统管理员

use admin

db.createUser(
  {
    user: "jyjinAdmin",
    pwd: "123456",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

db.createUser({user: "jyjinAdmin", pwd: "123456", roles:[{role: "userAdminAnyDatabase", db: "admin"}]})

//2019.5.9更新 4.0版本超级管理员此权限不够
db.createUser(
{
    user: "jyjinAdmin",
    pwd: "123456",
    roles: [
              { role: "userAdminAnyDatabase", db: "admin" },
              { role: "readWriteAnyDatabase", db: "admin" },
              { role: "dbAdminAnyDatabase", db: "admin" },
              { role: "clusterAdmin", db: "admin" }
           ]
})

db.createUser({user: "jyjinAdmin", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" },{ role: "readWriteAnyDatabase", db: "admin" },{ role: "dbAdminAnyDatabase", db: "admin" },{ role: "clusterAdmin", db: "admin" }]})


b.普通管理员

db.createUser(
  {
    user: "jyjin",
    pwd: "123456",
    roles: [ { role: "readWrite", db: "test" } ]
  }
)


db.createUser({user: "jyjin", pwd: "123456", roles: [{role: "readWrite", db: "test"}]})

c.创建游客

db.createUser(
  {
    user: "jyjinGuest",
    pwd: "123456",
    roles: [ { role: "read", db: "test" } ]
  }
)

db.createUser({user: "jyjinGuest", pwd: "123456", roles: [{role: "read", db: "test"}]})

二.测试登录

1.配置mongoDB配置文件
vi /etc/mongod.conf

bindIp 192.168.130.109

解释:bindIp 改成所在机器ip地址 ,目的为了其他机器能够登录

2.启动
service mongod start 
或者 
service mongod restart

解释:配置文件修改,必须用mongod重启服务,只有mongod服务会读取配置文件

3.登录
//形如:mongo --port [端口] -u [用户名] -p [密码] --authenticationDatabase [数据库名] --host [ip地址]
mongo --port 27017 -u 'jyjinAdmin' -p '123456' --authenticationDatabase 'admin' --host 192.168.130.109

解释:jyjinAdmin是超级管理员,可登录109机器的admin库

三.混淆名词解释

mongo——与MongoDB交互的javascript shell接口。用来为管理人员提供强大的DB管理接口,给开发人员直接去查询、操作数据库的方案。
mongod——与MongoDB交互的一个进程。用来处理数据请求,管理数据访问,执行后台的管理操作。

四.新数据库设置

1.远程登录到mongoDB所在服务器
ssh [email protected]

2.确保配置文件ip修改为本机实际ip
vi /etc/mongod.conf

bindIp 192.168.130.109

解释:修改bindIp的值。如果没改过的话,原值是127.0.0.1 本例演示的是远程登录192.168.130.109这台机器的mongoDB

3.管理员远程登录服务器
mongo --port 27017 -u 'jyjinAdmin' -p '123456' --authenticationDatabase 'admin' --host 192.168.130.109

解释:使用管理员账号jyjinAdmin密码为123456的账号,登录主机是192.168.130.109端口是27017的mongoDB

4.创建新的数据库
use monitorService 

解释:创建一个新的数据库,数据库名称是monitorService

5.为新数据库创建用户
db.createUser({user: "jyjinAdmin", pwd: "123456", roles: [ { role: "readWrite", db:"monitorService"}]})

解释:创建一个名称为jyjinAdmin密码为123456的用户,该用户可以读写数据库monitorService, 这里的jyjinAdmin是一个标准的开发用户

6.启用mongoBoost或Robot3T等客户端测试连接

如下图 图1图2图3

mongoDB Linux 认证配置、重置密码、远程登录配置详解_第1张图片
图1
mongoDB Linux 认证配置、重置密码、远程登录配置详解_第2张图片
图2
mongoDB Linux 认证配置、重置密码、远程登录配置详解_第3张图片
图3
新数据库设置成功!

拓展——node中 mongo连接格式
var conn= mongoose.createConnection('mongodb://jyjin:[email protected]:27017/monitorService', function (err) {
    if (err) {
        console.error('connect to %s error: ', config.db, err.message);
        process.exit(1);
    }
});

五.管理员密码重置

1.关闭认证
vi /etc/mongod.conf 
// 注释以下两句代码至如下
# security:
#  authorization: enabled

解释:注释认证语句,关闭mongo认证功能。注意:两句都要注释,亲测只注释第二句,重启mongo服务会不成功

2.重启服务
service mongod restart 

解释:重启以生效配置文件改动的配置。如果上面只注释一句,会导致启动不成功

3.登录mongo
mongo

解释:此处/etc/mongod.confbindIp的值为127.0.0.1,同时关闭了认证,所以可以省去参数直接登入mongo shell

4.修改用户信息
use admin                        // 切换到admin库
db.system.users.find()           // 查看系统用户表
db.system.users.remove({})       // 删除所有用户 也可以只删除admin
db.createUser({user: "jyjinAdmin", pwd: "123456", roles:[{role: "userAdminAnyDatabase", db: "admin"}]})						 // 重置管理员用户名密码 参考本文【模块一:配置登录】
5.重新打开配置文件的认证
vi /etc/mongod.conf 

//取消注释认证如下
security:
  uthorization: enabled

解释:重新启用认证

6.重启生效
service mongod restart

你可能感兴趣的:(Linux环境,MongoDB)