mongodb密码和传统数据如mysql等有些区别:

mongodb的用户名和密码是基于特定数据库的,而不是基于整个系统的。所有所有数据库db都需要设置密码

mongodb要先设置管理用户和密码:

  1. mongod开启服务, mongo连接服务。
  2. > show dbs
  3. use admin
  4. 创建管理员账户

    1
    2
    //这里的db是admin
    db.createUser({user:'admin',pwd:'yourpassword',roles:[{role:'root',db:'admin'}], mechanisms:["SCRAM-SHA-1"]})
  5. 验证第3步用户添加是否成功

    1
    2
    3
    db.auth("admin", "yourpassword") 如果返回1,则表示成功。
    exit退出系统
    //db.auth()方法理解为 用户的验证功能
  6. 开启mongodb密码验证。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //新建mongdb配置文件
    sudo vi /usr/local/mongodb/mongodb.conf

    //添加配置
    #端口号
    port = 27017
    #数据目录
    dbpath = /data/db
    #日志目录
    logpath = /data/logs/mongodb.log
    #设置后台运行
    #fork = true
    #日志输出方式
    logappend = true
    #开启密码认证
    auth = true
  7. 重启mongodb

    1
    mongod --config /usr/local/mongodb/mongodb.conf
  8. mongo重新连接服务,用第3步的 管理员账户登录,然后才能用该账户创建其他数据库管理员账号

    1
    2
    use admin
    db.auth("admin", "yourpassword")
  9. 登录管理员账户后,再新建你需要管理的mongodb 数据库的账号密码。

    1
    2
    3
    4
    5
    6
    7
    use spider    //yourdatabase

    //dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等
    db.createUser({ user: "ryan", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "spider" }], mechanisms:["SCRAM-SHA-1"]})

    //readWrite 该用户只拥有读写权限。
    db.createUser({ user: "ryansuen", pwd: "yourpassword", roles: [{ role: "readWrite", db: "spider" }], mechanisms:["SCRAM-SHA-1"]})
  10. 现在数据库的用户名和密码就建好了。
    可以使用:mongodb://youruser2:yourpassword2@localhost/yourdatabase来链接