#2 MongoDB 添加--auth 连接mongoose

1.设置用户并验证

初始设置可以参考这里 jiayi github mongodb

  1. 安装MongoDB(我的mongodb版本为 V3.4.4
  2. 设置开启验证 --auth 使用这个flag
  3. 给计算机默认的自带的 admin 设置一个帐号,相当于超级管理员
  4. 建立自定义数据库,设置用户帐号,并设置相应的权限

如果要使用mongoose连接mongodb则需要给数据库设置帐号密码和权限,首先我们需要添加用户

下面主要讲一下具体的命令:

# 1.进入mongo环境
> mongo

# 2.切换到 'admin' 数据库
> use admin

# 3.给admin设置用户
# user: 用户名 
# pwd: 用户密码
# roles: 用来设置用户的权限,比如读,读写,写等等
> db.createUser({user: 'root', pwd: '123456', roles: ['root']})

# 4.验证该用户 'db.auth(用户名,用户密码)'
> db.auth('root', '123456')
# 如果返回 '1'表示验证成功, 如果是 '0' 表示验证失败

# 5.自定义数据库,并添加用户
# a.创建 'example' 数据库
> use example

# b.创建用户
> db.createUser({user: 'james', pwd: '123456', roles: [{role: 'readWrite'}]})

# c.验证该用户
> db.auth('james', '123456')
# 如果返回 '1'表示验证成功, 如果是 '0' 表示验证失败

主要使用到的方法:

  • db.createUser()
  • db.auth()

另外删除用户可以使用:

  • db.dropUser(用户名)

给用户设置具体的操作权限 roles 有 (这个的设置对数据的操作权限影响很大,我暂时还不是很清楚,有待了解):

《#2 MongoDB 添加--auth 连接mongoose》 权限种类.jpg

关于权限blog

注意

如果修改了用户权限,则需要在用户所在的数据库再次认证才能生效

# 比如将上面 'example' 数据库下的用户 'james' 的权限修改
{
    "_id" : "example.james",
    "user" : "james",
    "db" : "example",
    "roles" : [ 
        {
            "role" : "readWrite", // 读写
            "db" : "example"
        }
    ]
}

# 修改为只读的
{
    "_id" : "example.james",
    "user" : "james",
    "db" : "example",
    "roles" : [ 
        {
            "role" : "read", // 只读
            "db" : "example"
        }
    ]
}

# 再次认证
> mongo
> use example
> db.auth('james', '123456')
# 如果返回 '1'表示验证成功, 如果是 '0' 表示验证失败

使用Robomongo连接

  1. 创建
  2. 点击验证,开启验证-> 输入帐号和密码(管理员用户的帐号和密码,比如上面的用户名root, 明码123456) -> 点击 ‘test’,查看是否通过验证

《#2 MongoDB 添加--auth 连接mongoose》 1.创建.jpg
《#2 MongoDB 添加--auth 连接mongoose》 2设置用户登录.jpg

使用mongose连接数据库

一般node项目连接 mongodb都会选择 mongose,下面是初步的连接教程

1.下载npm包

npm i -S express mongose

2.具体代码:

// app.js
var express = require('express');
var app = express()
var mongose = require('mongose');

# mongodb 为协议
# james: 连接数据库的用户
# 123456: 该用户的密码
# localhost: 本地的地址(因为这是本地环境)
# 27017: mongodb的端口号(这个一般是默认值,也可以进行修改)
# example: 数据库的名字
var db = 'mongodb://james:123456@localhost:27017/example'

// 连接
mongose.connect(db);

var connection = mongose.connection;
connection.on('connected', function() {
  console.log('Mongoose 连接到 example数据库');
}) 
connection.once('open', function(callback){
    console.log('数据库启动了');
    // app.listen(8080, () => console.log('Express server listening on port 8080'));
})

使用 node app 运行js,成功连接则会输出上面打印的信息。

总结

大致的连接过程就是这些,设置的时候时候,如果查看教程请注意mongodb版本号。

mongodb 创建用户

    原文作者:JamesSawyer
    原文地址: https://www.jianshu.com/p/a6b82fd5bbc1
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞