#修改配置
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
......
security:
# authorization: disabled 注意此处 这个是关闭 enabled 是开启
authorization: enabled
javascriptEnabled: false
# 个人建议加入以下参数
setParameter:
enableLocalhostAuthBypass: false
#重启
service mongod restart
#进入数据库
/www/server/mongodb/bin/mongo
#切换到admin数据库
use admin
db.createUser({user:"mongo",pwd:"bgnT$HvtZJj91!LX",roles:["root"]})
or
db.createUser({ user: "mongo", pwd: "bgnT$HvtZJj91!LX", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
---mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以管理任何数据库。
# 执行认证
db.auth("user_test","pwd_test")
note: 注意是admin数据库。
---新建你需要管理的mongodb 数据的账号密码。
use yourdatabase
db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })
---rote:dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等
---新建数据库读写账户
use yourdatabase
db.createUser({ user: "youruser2", pwd: "yourpassword2", roles: [{ role: "readWrite", db: "yourdatabase" }] })
---该用户用于该数据的读写,只拥有读写权限。
删除用户:
db.dropUser(<user_name>) 删除某个用户,接受字符串参数
db.dropUser(“admin”)
-删除当前库的所有用户
`db.dropAllUser()`
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限