美文网首页
MongoDB设置用户名和密码

MongoDB设置用户名和密码

作者: joyitsai | 来源:发表于2019-04-18 15:58 被阅读0次

1. 禁止公网访问 Mongodb 端口

1.1 网络配置

由于网络配置因人而异,需要根据自己实际环境进行配置,不作冗述。大致可以从以下方面禁止。

  • 在路由器中关闭端口转发
  • 防火墙 iptables 禁止访问

1.2 验证端口能否访问方式

在外网机器命令行中运行

telnet your.machine.open.ip 27017

2. 启用验证

2.1 创建用户管理员账户

新建MongoDB服务:

mongod --port 27017 --dbpath /data/db1

开启mongodb客户端shell:

mongo --port 27017

use admin

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

管理员创建成功,现在拥有了用户管理员
用户名:adminUser
密码:adminPass
然后,断开 mongodb 连接, 关闭数据库

2.2 Mongodb 用户验证登陆

启动带访问控制的 Mongodb

mongod --auth --port 27017 --dbpath /data/db1

现在有两种方式进行用户身份的验证

  • 第一种 (类似 MySql)
    客户端连接时,指定用户名,密码,db名称
mongo --port 27017 -u "adminUser" -p "adminPass" --authenticationDatabase "admin"
  • 第二种
    客户端连接后,再进行验证
mongo --port 27017

use admin
db.auth("adminUser", "adminPass")
// 输出 1 表示验证成功

2.3 创建普通用户

过程类似创建管理员账户,只是 role 有所不同

use foo

db.createUser(
  {
    user: "simpleUser",
    pwd: "simplePass",
    roles: [ { role: "readWrite", db: "foo" },
             { role: "read", db: "bar" } ]
  }
)

现在我们有了一个普通用户
用户名:simpleUser
密码:simplePass
权限:读写数据库 foo, 只读数据库 bar。

注意
use foo表示用户在 foo 库中创建,就一定要 foo 库验证身份,即用户的信息跟随随数据库。比如上述 simpleUser 虽然有 bar 库的读取权限,但是一定要先在 foo 库进行身份验证,直接访问会提示验证失败。

use foo
db.auth("simpleUser", "simplePass")

use bar
show collections

2.4 内建角色

  • Read:允许用户读取指定数据库
  • readWrite:允许用户读写指定数据库
  • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
  • clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  • readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
  • readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
  • userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
  • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
  • root:只在admin数据库中可用。超级账号,超级权限

相关文章

  • mongodb-Unescaped at-sign in aut

    mongoDb默认是不需要用户名密码的,设置了用户名密码后,在用MongoDB Compass去连接数据库时报了一...

  • 创建用户名 密码

    MongoDB如何设置权限(类似关系型数据库的用户名和密码) MongoDB 缺省是没有设置鉴权的,业界大部分使用...

  • 关于为mongodb 4.0设置用户和密码

    安装好mongoDB后,想要给mongodb设置用户名和密码访问,在网上找到有很多文章,搜到版本都 是低于v4.0...

  • MongoDB设置用户名和密码

    1. 禁止公网访问 Mongodb 端口 1.1 网络配置 由于网络配置因人而异,需要根据自己实际环境进行配置,不...

  • mongodb 终端一些命令

    为mongodb设置最高权限的用户名密码 通过用户名验证登录 查看所有用户(注意权限) 修改用户 角色 Read:...

  • MongoDB 设置用户名密码

    MongoDB 版本 v4.0.5系统 Win10 超级管理员 设置 admin 设置完成,可以输入 show u...

  • mongodb授权管理

    mongodb密码和传统数据如mysql等有些区别: mongodb的用户名和密码是基于特定数据库的,而不是基于整...

  • mongo身份验证和权限管理

    mongodb密码和传统数据如mysql等有些区别:mongodb的用户名和密码是基于特定数据库的,而不是基于整个...

  • Git常用操作

    常用指令 查看当前库的用户名和邮箱命令: 设置当前库的用户名和密码 设置全局的用户名和密码 遇到的问题: Q1: ...

  • MongoDB设置用户名密码登录

    原文链接: https://www.jianshu.com/p/237a0c5ad9faMongoDB版本 4.2...

网友评论

      本文标题:MongoDB设置用户名和密码

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