在这里使用了mongodb自带的命令行工具去操作数据库。
连接数据库
首先开启服务,v4.0版本无需手动开启
$ mongod --dbpath C:\mongodb
客户端接入
$ mongo #默认是127.0.0.1:27017
或者指定地址
$ mongo 127.0.0.1:27017
创建管理员
默认情况下,只要开放了binip,任何计算机都能操作到mongodb,很明显这是很危险的。
管理员类型
mongodb提供了很多了角色,用于不同情境下对数据库进行管理:
- 数据库用户角色:
read、readWrite; - 数据库管理角色:
dbAdmin、dbOwner、userAdmin; - 集群管理角色:
clusterAdmin、clusterManager、clusterMonitor、hostManager; - 备份恢复角色:
backup、restore; - 所有数据库角色:
readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
dbAdminAnyDatabase - 超级用户角色:
root
需要我们关注的是dbOwner(某个数据库的所有者)和root(所有权限)
创建超级管理员
mongodb自带了admin数据库,这里是所有管理员的集合
默认mongodb不开启认证登录,在开启之前,我们必须要创建一个超级管理员,用于管理其他账户
创建
$ use admin
# 创建一个admin超级用户,管理以后所有的用户
# 开启验证登录之后,只有该账户能看到admin数据库
$ db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})
开启认证登录
修改mongodb安装目录下bin目录里面的mongod.cfg
security:
authorization: enabled
重启服务
以windows系统为例,cmd输入 services.msc --> MongoDB Server重启

验证连接
开启验证登录后,直接使用mongo虽然可以连接成功,但是show dbs无法看到数据库
使用刚才的超级管理员连接入admin数据库
$ mongo 127.0.0.1:27017/admin -u admin -p 123456
创建对应数据库的管理员
比如我希望让一个管理员只能管理koa数据库
# 利用超级管理员登录到admin数据库之后
# 创建一个专属于koa数据库的管理员
db.createUser({user:"koa",pwd:"123456",roles:[{role: "dbOwner", db: "koa" }]})
然后使用该账号密码登录,就只能操作koa数据库了。下面是2种登录方法:
- 验证登录
$ mongo 127.0.0.1:27017/admin -u koa -p 123456 auth登录$ mongo 127.0.0.1:27017/admin $ db.auth("koa","123456")
用户相关操作
查看当前用户
$ use admin
$ show users
删除用户
$ db.dropUser('username')
更新用户
$ db.updateUser('admin',{pwd:'password'})
密码验证
$ db.auth('username','pwd')
本文详细介绍了如何使用MongoDB的内置命令行工具进行数据库管理,包括连接数据库、创建超级管理员、开启认证登录、创建数据库管理员及用户管理等关键操作。
1396

被折叠的 条评论
为什么被折叠?



