注意:在哪个数据库下面创建的用户就只能在该数据库下面有操作权限
use admin 注:MongoDB安装好以后由默认的admin表和local表;其中admin存放的是用户信息
db.createUser({ user: "root",pwd: "root",customData:{name:"root"},roles:[{ role: "userAdminAnyDatabase",db: "admin" }]}) 注:创建一个用户名和密码为root的管理员
createUser 方法 db.createUser( { user: "accountAdmin01", pwd: "changeMe", customData: { employeeId: 12345 }, roles: [ { role: "clusterAdmin", db: "admin" }, { role: "readAnyDatabase", db: "admin" }, "readWrite"] }, { w: "majority" , wtimeout: 5000 } )
customData 用户信息备注
roles 用户角色:
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
创建一般用户,也是用createUser
use db01db.createUser({user:"oneUser",pwd:"12345",roles:[{role:"read",db:"db01"},{role:"read",db:"db02"},{role:"read",db:"db03"}]})
创建一个不受访问限制的超级用户 use admindb.createUser({user:"superuser",pwd:"pwd",roles:["root"] })
修改用户密码
use admin db.changeUserPassword("username", "xxx")
查看用户信息 db.runCommand({usersInfo:"userName"})
修改密码和用户信息 db.runCommand( { updateUser:"username", pwd:"xxx", customData:{title:"xxx"} })
注意:和用户管理相关的操作基本都要在admin数据库下运行,要先use admin;