美文网首页我爱编程JS开发
#2 MongoDB 添加--auth 连接mongoose

#2 MongoDB 添加--auth 连接mongoose

作者: JamesSawyer | 来源:发表于2017-06-17 00:07 被阅读2693次

    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 有 (这个的设置对数据的操作权限影响很大,我暂时还不是很清楚,有待了解):

    权限种类.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',查看是否通过验证
    1.创建.jpg 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 创建用户

    相关文章

      网友评论

        本文标题:#2 MongoDB 添加--auth 连接mongoose

        本文链接:https://www.haomeiwen.com/subject/wthvqxtx.html