如何用用户名和密码保护MongoDB
我想为我的MongoDB实例设置用户名和密码认证,以便任何远程访问都会询问用户名和密码。 我尝试了MongoDB网站的教程,并做了以下操作:
use admin
db.addUser('theadmin', '12345');
db.auth('theadmin','12345');
之后,我退出并再次运行了mongo。 我不需要密码来访问它。 即使我远程连接到数据库,我也不会提示输入用户名和密码。
更新这里是我最终使用的解决方案
1) At the mongo command line, set the administrator:
use admin;
db.addUser('admin','123456');
2) Shutdown the server and exit
db.shutdownServer();
exit
3) Restart mongod with --auth
$ sudo ./mongodb/bin/mongod --auth --dbpath /mnt/db/
4) Run mongo again in 2 ways:
i) run mongo first then login:
$ ./mongodb/bin/mongo localhost:27017
use admin
db.auth('admin','123456');
ii) run & login to mongo in command line.
$ ./mongodb/bin/mongo localhost:27017/admin -u admin -p 123456
用户名和密码的工作方式与mongodump
和mongoexport
相同。
您需要在设置用户后使用--auth
选项启动mongod
。
来自MongoDB站点:
使用--auth
选项运行数据库(mongod进程)以启用安全性。 您必须在使用--auth
启动服务器之前将用户添加到管理数据库,或者从localhost接口添加第一个用户。
MongoDB身份验证
首先,在mongod配置文件(默认路径/etc/mongo.conf
)中取消注释以/etc/mongo.conf
#auth=true
开头的行。 这将启用mongodb的身份验证。
然后,重新启动mongodb: sudo service mongod restart
这个答案适用于Mongo 3.2.1 Reference
1号航站楼:
$ mongod --auth
2号航站楼:
db.createUser({user:"admin_name", pwd:"1234",roles:["readWrite","dbAdmin"]})
如果你想添加没有角色(可选):
db.createUser({user:"admin_name", pwd:"1234", roles:[]})
检查是否验证:
db.auth("admin_name", "1234")
它应该给你:
1
其他:
Error: Authentication failed.
0
链接地址: http://www.djcxy.com/p/36077.html