mongod 3.4.3 用户权限授权

作者: Eugeneeee | 来源:发表于2017-04-27 18:06 被阅读417次

最近在玩koa2,涉及到连接mongodb,中间踩的坑挺多,mongodb默认是没有用户验证登录的,但是为了让我们的数据库更加安全,还是要把用户权限这一块加上滴。废话不多说,现在开启我们的验证之旅:
我的mongodb是通过brew install mongod安装的,所以按默认配置启动服务mongod --config /usr/local/etc/mongod.conf,此命令不是挂起的,所以我们另开窗口执行mongo,连接到admin库,在admin库添加超级用户:

Eugene-mac:~ Eugene$ mongo
MongoDB shell version v3.4.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.3
Server has startup warnings:
2017-04-27T17:19:15.356+0800 I CONTROL  [initandlisten]
2017-04-27T17:19:15.356+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-04-27T17:19:15.356+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-04-27T17:19:15.356+0800 I CONTROL  [initandlisten]
> show dbs
admin  0.000GB
local  0.000GB
test   0.000GB
> use admin
switched to db admin
> db.createUser({
     user: 'admin',
     pwd: 'admin',
     roles: [ { role: "__system", db: "admin" } ]
  })
Successfully added user: {
    "user" : "admin",
    "roles" : [
        {
            "role" : "__system",
            "db" : "admin"
        }
    ]
}
>

这样,超级用户就建成了,通过这个用户可以对任何库进行任何超做。但是利用这个超级用户来连接数据库显然是不安全的,所以我们可以对每个库进行权限配置。接下来就来配置其他库的用户权限,比如现在有一个test测试库,我配置一个读写权限的用户:

> use admin
switched to db admin
> db.createUser({
     user: 'testUser', 
     pwd: 'testPwd', 
     roles: [ { role: 'readWrite', db: 'test'} ]
  })
Successfully added user: {
    "user" : "testUser",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "test"
        }
    ]
}

这样,这个用户名为testUser密码为testPwd的用户就建成了,如果我们用工具mongoose直连mongodb的话也是很方便的。

mongoose.connect('mongodb://testUser:testPwd@localhost:27017/test', {
  auth: {
        authdb: 'admin'
    }
}, function(err){
  if (err) {
        console.error(err);
    } else {
        cosnole.log('连接数据库成功')  
    }
});

以上是连接test库的方式,如果要使用之前建的超级用户来访问test库的话,只要修改url中的账号和密码就行啦。(注意一定要访问的时候要对admin库验证,即authdb: 'admin')。

相关文章

  • mongod 3.4.3 用户权限授权

    最近在玩koa2,涉及到连接mongodb,中间踩的坑挺多,mongodb默认是没有用户验证登录的,但是为了让我们...

  • mongod3.x权限设置--用户名、密码、端口

    对于mongod数据库勒索事件时有发生,所以还是有必要了解mongod权限设置。 mongod 权限设置--用户名...

  • mongodb 用户权限配置

    mac mongodb 用户权限 1. 启动 mongodb brew services start mongod...

  • 一看就懂的MySQL DCL使用

    创建用户 给用户授权 撤销授权 查看用户权限 删除用户 修改用户密码

  • SQL之DCL

    DCL用于账户以及权限的管理 创建用户 删除用户 用户授权 撤销授权 查看权限 一. 创建用户 用户只能在指定的I...

  • Oracle用户权限,角色操作命令

    一、创建用户以及授权管理权限 二、查询普通用户拥有那些权限 三、系统权限的传递 四、系统权限回收 五、普通用户授权...

  • Mysql 数据库 用户相关操作指令

    新建用户: 退出登录试验一下。 修改用户密码: 删除用户: 授权用户数据库权限: 授权用户数据库部分权限: 授权用...

  • Oracle | 用户、权限、角色管理操作

    一、用户管理 1、创建用户 2、修改用户 3、删除用户 二、权限管理 1、系统权限 - 授权操作 2、对象权限 -...

  • 2、用户权限

    创建用户 删除用户 修改用户 修改密码 1、查看权限: 2、授权 3、取消授权 授权实例如下:

  • Android动态权限

    普通权限 在程序运行时系统自动授权 特殊权限 pass 危险权限 有用户自己手动授权 申请危险权限 调用申请权限的...

网友评论

    本文标题:mongod 3.4.3 用户权限授权

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