美文网首页
mongodb 终端一些命令

mongodb 终端一些命令

作者: 胡乱唱歌ing | 来源:发表于2019-03-28 15:22 被阅读0次

为mongodb设置最高权限的用户名密码

> use admin 
> db.createUser({user: 'root', pwd: '123456', roles: ['root']})

> use test
> db.createUser({user:'test',pwd:'123456',roles:['dbAdmin',db:'test']}) #为test库创建一个test的管理用户

#重启mongod 进程
$ killall mongod
$ /usr/local/opt/mongodb/bin/mongod --config /usr/local/etc/mongod.conf  --auth  & #--auth 这个参数要加上

通过用户名验证登录

$ mongo  #连上mongodb
> use admin #切换到admin 库  注意:因为我创建的root是在admin库下操作的,所以验证用户之前要先切换到admin库
> db.auth("root","123456") #验证用户名密码

查看所有用户(注意权限)

> use admin
> db.system.users.find().pretty()

修改用户

> use test
> db.changeUserPassword('test','newpass') #修改密码
> db.grantRolesToUser(  "test",  [ { role: "read",db:"test"}  ] )  #修改test用户只能读test库
> db.revokeRolesFromUser("test",[  { role: "read",db:"test"}  ] ) #撤销权限
> db.dropUser("test") #删除test用户

角色

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

show dbs // 显示当前所有的库
db //显示当前库
show collections //显示当前库的所有集合

删除数据库

#注意要先切换到要删除的库再执行db.dropDatabase() 
> use test1
> db.dropDatabase() 

集合

> db.createCollection("order")
> db.createCollection("mycol", { capped : true, autoIndexId : true, size : 
   6142800, max : 10000 } ) #创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。
> db.order.drop() #删除order集合
> db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true}) #更新数据 如果不带multi:true 则只会更新一条记录
> db.col.remove({'title':'MongoDB 教程'}) #删除符合条件的记录
> db.col.remove({}) #清空集合

相关文章

网友评论

      本文标题:mongodb 终端一些命令

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