mongodb基础操作
1 Read:允许用户读取指定数据库 2 readWrite:允许用户读写指定数据库
3 dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问sys tem.profile 4 dbOwner:该数据库的所有者,具有该数据库的全部权限。 5 userAdmin:允许用户向ers集合写入,可以在指定数据库里创建、删除和管理 用户
12 #updateuser它是完全替换之前的值,如果要新增或添加roles而不是代替它 则使用方 法: db.grantRolesToUser() 和 db.revokeRolesFromUser() 13 mongo> db.grantRolesToUser("usertest", [{role:"readWrite", db:"testDB"}, {role:"read", db:"testDB"}]) # 添加权限 14 mongo> db.revokeRolesFromUser("usertest",[{role:"read", db:"testDB"}])
7. 角色权限简介
1 关于MongoDB的内置角色,我们大概可以分为以下几种来简单说一下 2 1 Database User Roles(数据库用户角色):read、readWrite 3 2 Database Administration Roles(数据库管理角色):dbAdmin、dbOwner、userAdmi n 4 3 Culster Administration Roles(管理员组,针对整个系统进行管理):clusterAdmi n、clusterManager、clusterMonitor、hostManager 5 4 Backup and Restoration Roles(备份还原角色组):backup、restore 6 5 All‐Database Roles(所有数据库角色):readAnyDatabase、readWriteAnyDatabas e、userAdminAnyDatabase、dbAdminAnyDatabase 7 6 Superuser Roles(超级管理员):root、(dbOwner、userAdmin、userAdminAnyDatab ase这几个角色角色提供了任何数据任何用户的任何权限的能力,拥有这个角色的用户可以在任 何数据库上定义它们自己的权限) 8 7 Internal Role(内部角色,一般情况下不建议设置):__system
4. 创建普通用户
1 mongo> use test 2 mongo> db.createUser( 3{ 4 user:"test", 5 pwd:"Admin12#$", 6 roles:[ 7 {role:"readWrite", db:"test"} #读写权限 8] 9} 10 ) 11 mongo> db.auth("test","Admin12#$") //授权
14 dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 15 root:只在admin数据库中可用。超级账号,超级权限
2. 创建超级管理用户
1 创建超级管理员用户
2 mongo> usreateUser({
4
"user" : "root",
5
"pwd": "Admin12#$",
6
"roles" : [{"role":"root","db":"admin"}]
7 })
8 mongo> db.auth("root","Admin12#$") //授权
5. 修改权限
1 #更改用户权限 2 mongo> use test 3 mongo> db.updateUser( 4{ 5 user:"test", 6 pwd:"Admin12#$", 7 roles:[ 8 {role:"dbAdmin", db:"test"} #数据库管理角色 9] 10 } 11 )
8} 9) 10 mongo> db.auth("admin","Admin12#$") //授权 11 #创建系统用户拥有test库的读写权限 12 mongo> use admin 13 mongo> db.createUser( 14 { 15 user:"test", 16 pwd:"Admin12#$", 17 roles:[ 18 {role:"readWrite", db:"test"} 19 ] 20 } 21 ) 22 mongo> db.auth("test","Admin12#$") //授权
1. 常用命令
1 #登录mongo 2 shell> mongo 127.0.0.1:27017/admin ‐u admin ‐p Admin12$# 3 #切换到admin数据库 4 mongo> use admin 5 #展示所有数据库 6 mongo> show dbs 7 #展示所有集合 8 mongo> show collections;方法1 9 mongo> show tables;方法2 10 #查询用户的信息 11 mongo> show users;方法1 12 mongo> ers.find();方法2 13 mongo> db.runCommand({usersInfo:"userName"});方法3 14 #查询集合中所有的数据 15 mongo> db.collection.find(); 16 #显示当前工作的数据库 17 mongo> db 18 #查看当前使用的数据库 19 mongo> db.geMongomontName(); 20 #显示当前db状态 21 mongo> db.stats();
# 删除权限 15 #修改密码 16 mongo> db.changeUserPassword("user","changepass");方法1 17 mongo> db.updateUser("user",{pwd:"changepass"});方法2
18
6. 删除操作
1 #删除新数据库<newdb>,那么dropDatabase()命令将如下所示: 2 mongo> use newdb 3 switched to db newdb 4 mongo> db.dropDatabase() 5 { "dropped" : "newdb", "ok" : 1 } 6 #删除名称为 collection 的集合。 7 mongo> db.collection.drop() 8 true 9 #删除用户 10 mongo> use dbname 11 mongo> ers.remove({user:"usertest"}) 12 mongo> db.dropUser('usertest')
3. 创建系统用户
1 #创建系统用户 2 mongo> use admin 3 mongo> db.createUser( 4{ 5 user: "admin", 6 pwd: "Admin12#$", 7 roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
6 clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权 限。
7 clusterManager:提供了集群和复制集管理和监控操作。拥有该权限的用户可以操作confi g和local数据库(即分片和复制功能) 8 clusterMonitor:仅仅监控集群和复制集 9 hostManager:提供了监控和管理服务器的权限,包括shutdown节点,logrotate, repai rDatabase等。 10 backup、restore:admin数据库中备份恢复数据的角色 11 readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 12 readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 13 userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权 限