macos下mongoDB 3.4.5 添加用户、设置权限
在项目中需要根据项目运行环境访问,以不同的身份访问各自的db,所以研究了一下MongoDB的
需求:
给MongoDB添加两个用户分别用于开发环境和测试环境,两个用户分别访问不同的db并拥有db的最高权限。
解决步骤:
- 关闭权限验证、启动MongoDB
- 创建MongoDB超级管理员,给予最高权限
- 分别创建两个用户,给予各自db的最高权限
- 开启权限验证、启动MongoDB
- 测试
具体步骤:
-
关闭权限验证、启动MongoDB
MongoDB默认是不开启权限验证的,所以直接使用命令启动(需要在bin目录下):mongod --dbpath /usr/local/mongodb/data/ --logpath /usr/local/mongodb/logs/mongod.log -logappend --fork
- 添加并认证管理员
- 先在另一个命令窗口进入客户端(Linux可以让服务端在后台运行):`./mongo’
-
然后在admin添加管理员(role:root表示最高权限):
use admin db.createUser({ user:"admin", pwd:"admin", roles:[{ role:"root", db:"admin" }] }) db.auth("admin", "admin")
-
use admin db.createUser({ user:"test_user", pwd:"123456", roles:[{ role:"dbAdmin", db:"test_db" },{ role:"readWrite", db:"test_db" }] }) db.auth("test_user", "123456")
-
开启权限验证、启动MongoDB(先关闭第1步启动的服务端)
mongod --auth --dbpath /usr/local/mongodb/data/ --logpath /usr/local/mongodb/logs/mongod.log -logappend --fork
4.测试
-
mongo 127.0.0.1:27017/admin -u test_user -p 123456