(一)在 mongoDB 中创建用户
在创建用户之前,必须先关闭 权限认证(参考第二步)
1、启动 mongodb
./mongod -f mongodb.conf
2、连接
./mongo 127.0.0.1:27017
3、创建用户
db.createUser({
user:"<name>",
pwd:"<password>",
customData:"any information",
roles:[{role:"<role>",db:"<database>"}]})
customData:提示信息
roles:是指这个用户的类型/角色
db:是这个用户是创建在哪个数据库上
role:内建类型(read,readWrite,dbAdmin,dbOwner,userAdmin)
- 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDat
案例:
db.createUser({
user:"root",
pwd:"root",
customData:"超级用户",
roles:[{role:"<role>",db:"<database>"}]})
(二)开启权限认证
修改配置文件,添加:
#开启权限认证
auth = true
重启 mongodb
(三)用户名密码登录
./mongo 127.0.0.1:27017 -u root -p root
(四)自定义用户角色
可以使用 createRole() 创建角色,比如:
db.createRole({
_id:"myApp.appUser",
role:"appUser",
db:"myApp",
privileges:[
{resource:{db:"myApp",collection:""},
actions:["find","createCollection","dbStats","collStats"]},
{resource:{db:"myApp",collection:"logs"},
actions:["insert"]},
{resource:{db:"myApp",collection:"data"},
actions:["insert","update","remove","compact"]}
],
roles:[]
})