mongodb Enable Auth
- 启动mongodb没有使用通道控制
mongod --port 27017 --dbpath /data/db1
- 连接mongo
mongo --port 27017
-
创建用户
use admin db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
-
开启access control之后,重新运行mongodb实例
在配置文件中添加security.authorization: enabled
mongod --auth --port 27017 --dbpath /data/db1
- 连接并且验证用户
使用mongo shell,你可以:
直接指定用户密码验证
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
不指定密码,登录以后使用db.auth()
mongo --port 27017
use admin
db.auth("myUserAdmin", "abc123" )
-
创建其他用户
一旦administrator认证通过之后,就可以使用db.createUser()
来创建其他的用户,你可以给用户分配built-in role
或者user-defined roles
。
之前创建的myUserAdmin用户,仅仅是用来管理用户和角色,作为myUserAdmin,如果你尝试执行一些其他操作,像在 test 数据库中读取foo collection,这将会报错。use test db.createUser( { user: "test", pwd: "123456", roles: [ { role: "readWrite", db: "test" }, { role: "read", db: "reporting" } ] } )
-
连接和认证test
mongo --port 27017 -u 'test' -p '123456' --authenticationDatabase "test"
或者:
mongo --port 27017
use test
db.auth('test','123456')
作者:OneMore
出处:https://www.cnblogs.com/dianel/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题或建议,请多多赐教。