安装mongodb

  • Ubuntu16.04 apt-get安装Mongodb 4.0 版本

  添加安装源

  • Step 1:
  1. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
  • Step 2:

Ubuntu 18.04 LTS:

  1. echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list

Ubuntu 16.04 LTS:

  1. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list

  更新apt-get

  • 更新
    1. sudo apt-get update


  安装




使用

  进入数据库

  • 数据库启动后,默认配置下在命令行输入mongo就可以进入数据库管理
  1. (venv3) work@ubuntu16:~/project/osroom$ mongo
  2. MongoDB shell version v3.4.10
  3. connecting to: mongodb://127.0.0.1:27017
  4. MongoDB server version: 3.4.10



  创建数据库

  • use test_db就能创建一个数据库test_db, 之后需要创建一个collection, 否则会被自动删除
  1. > use test_db
  2. > db.createCollection("test_coll")



  创建用户

  • 先给mongodb自带的collection admin 创建一个用户
  1. > use admin
  2. > db.createUser(
  3. {
  4. user: "dba",
  5. pwd: "123456",
  6. roles: [ { role: "userAdminAnyDatabase", db: "admin" },
  7. { role: "dbAdminAnyDatabase", db: "admin" }]
  8. }
  9. )



  • 为自己创建的库新建用户
  1. > use test
  2. > db.createCollection("test_coll")
  3. > db.createUser(
  4. {
  5. user:'work',
  6. pwd:'123456',
  7. roles:[{role:'readWrite', db:'test'}]
  8. })



  • 更新一个库的用户方式如下
    1. > use test
    2. > db.updateUser(
    3. "dba",
    4. {
    5. roles : [ { role: "dbAdminAnyDatabase", db: "admin" },
    6. { role: "userAdminAnyDatabase", db: "admin" }]
    7. }
    8. )



  数据库个角色role说明

  • Built-In Roles(内置角色)
    1. 1. 数据库用户角色:readreadWrite;
    2. 2. 数据库管理角色:dbAdmindbOwneruserAdmin
    3. 3. 集群管理角色:clusterAdminclusterManagerclusterMonitorhostManager
    4. 4. 备份恢复角色:backuprestore
    5. 5. 所有数据库角色:readAnyDatabasereadWriteAnyDatabaseuserAdminAnyDatabasedbAdminAnyDatabase
    6. 6. 超级用户角色:root
    7. // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
    8. 7. 内部角色:__system



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



  OSROOM需要的库

  • 使用osroom系统,请先创建三个数据库,库名自定义(建议使用库名称为osr_web, osr_user, osr_sys)



  • 注意mongodb的每个库都需要创建一个用户/密码(可以全部一样的用户名和密码)



  • 创建后修改mongo配置文件mongodb.conf 开启安全验证(用户验证)

创建Mdb数据库collections命令合集

  1. use admin
  2. db.createUser(
  3. {
  4. user: "dba",
  5. pwd: "123456",
  6. roles: [ { role: "userAdminAnyDatabase", db: "admin" },
  7. { role: "dbAdminAnyDatabase", db: "admin" }]
  8. }
  9. )
  10. use osr_sys
  11. db.createCollection("test")
  12. db.createUser(
  13. {
  14. user:'work',
  15. pwd:'123456',
  16. roles:[{role:'readWrite', db:'osr_sys'}]
  17. })
  18. use osr_user
  19. db.createCollection("test")
  20. db.createUser(
  21. {
  22. user:'work',
  23. pwd:'123456',
  24. roles:[{role:'readWrite', db:'osr_user'}]
  25. })
  26. use osr_web
  27. db.createCollection("test")
  28. db.createUser(
  29. {
  30. user:'work',
  31. pwd:'123456',
  32. roles:[{role:'readWrite', db:'osr_web'}]
  33. })