0%

MongoDB入门教程

突发奇想,想要在家里的笔记本上安装个MongoDB,平时偶尔能用一下来进行测试,既然笔记本上有Docker环境,当然要利用起来了

1
docker run --name mongodb -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin  -d mongo --auth --authenticationDatabase heheda
  • 使用认证方式登录MongoDB –auth .
  • 管理员用户名 MONGO_INITDB_ROOT_USERNAME 设置
  • 管理员用户名密码 MONGO_INITDB_ROOT_PASSWORD 设置

现在你有了一个管理员账户,但是对于不同的数据库,要使用不同的用户,怎么控制呢?

Let’s get it ,我现在需要一个demo数据库,并且需要一个用户对demo数据库有完全管理权限.用户名和密码就都是demo吧

1
2
3
4
5
6
7
8
9
10
11
12
13
> mongo 192.168.123.123:27017/admin -u admin -p admin
> use demo
switched to db demo
> db.createUser({user:"demo",pwd:"demo",roles:[{"role":"dbAdmin","db":"demo"}]})
Successfully added user: {
"user" : "demo",
"roles" : [
{
"role" : "dbAdmin",
"db" : "demo"
}
]
}

登录到Docker上的mongo server ,我使用本地装好的mongo client ,use demo选择一个数据库,这样也就是创建了一个数据库,createUser在demo数据库下,创建了一个demo用户,用户名密码都是demo.{"role":"dbAdmin","db":"demo"} dbAdmin: 数据库管理员,具体有什么权限参照下面

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