参考文档:
https://blog.csdn.net/qq_33206732/article/details/79877948
https://blog.csdn.net/dhfttkl123/article/details/53375162
https://blog.csdn.net/u012702547/article/details/79001275
1.如果没有全局配置:到安装mongodb目录下找到bin目录进去运行 ./mong 命令进入mongodb
2.use 数据库名称 比如:use engine ,
然后创建用户账号密码:
db.createUser( {user: “账号”,pwd: “密码”,roles: [ { role: “权限”, db: “db库名称” } ]});
3.然后退出,重新进入,这时候是需要进行登陆认证
> use admin> db.auth("账号","密码") #认证,返回1表示成功
这时候账号代表创建成功了,
4.将mongo路径软链到/usr/bin路径下,方便随处执行mongo命令
执行命令: ln -s mongodb目录/bin/mongo /usr/bin/mongo
回到任意路径下,执行mongo命令,连接mongod服务
use dbname 进入数据库show dbs 查看数据库show users 查看当前数据库用户权限
创建用户:
`
db.createUser({user:”usertest”,pwd:”passtest”,roles:[ {role:”clusterAdmin”, db:”admin” }, {role:”readAnyDatabase”,db:”admin” }, {role:”readWrite”,db:”testDB” } ]})
`
user字段,为新用户的名字;
pwd字段,用户的密码;
cusomData字段,为任意内容,例如可以为用户全名介绍;
roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色;
在roles字段,可以指定内置角色和用户定义的角色。
权限详解:
内建角色: 数据库用户角色:read、readWrite; 数据库管理角色:dbAdmin、dbOwner、userAdmin; 集群管理角色: clusterAdmin、clusterManager、clusterMonitor、hostManager; 备份恢复角色: backup、restore; 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 超级用户角色: root; 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) 内部角色: __system; ------------------------------------------------------------------------------------------ 角色说明: Read: 允许用户读取指定数据库 readWrite: 允许用户读写指定数据库 dbAdmin: 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile userAdmin: 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 dbOwner: 允许在当前DB中执行任意操作 readAnyDatabase: 赋予用户所有数据库的读权限,只在admin数据库中可用 readWriteAnyDatabase: 赋予用户所有数据库的读写权限,只在admin数据库中可用 userAdminAnyDatabase:赋予用户所有数据库管理User的权限,只在admin数据库中可用 dbAdminAnyDatabase: 赋予管理所有数据库的权限,只在admin数据库中可用 root: 超级账号,超级权限,只在admin数据库中可用。 ------------------------------------------------------------------------------------------ 集群管理角色: clusterAdmin: 赋予管理集群的最高权限,只在admin数据库中可用 clusterManager: 赋予管理和监控集群的权限 clusterMonitor: 赋予监控集群的权限,对监控工具具有readonly的权限 hostManager: 赋予管理Server
修改密码
方法1:db.changeUserPassword("usertest","changepass");方法2:db.updateUser("usertest",{pwd:"changepass1"});
修改权限
db.updateUser("usertest",{roles:[ {role:"read",db:"testDB"} ]})注:updateuser它是完全替换之前的值,如果要新增或添加roles而不是代替它 则使用方法: db.grantRolesToUser() 和 db.revokeRolesFromUser()db.grantRolesToUser("usertest", [{role:"readWrite", db:"testDB"},{role:"read", db:"testDB"}]) # 修改权限db.revokeRolesFromUser("usertest",[{role:"read", db:"testDB"}]) # 删除权限:
删除用户
db.dropUser('usertest')