【发布时间】:2011-06-20 08:29:29
【问题描述】:
我想为我的 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 的用户名和密码的使用方式相同。
【问题讨论】:
-
这适用于 MongDB 版本 2.2.x
-
在 Mongo 3.0.4 中创建用户的命令是db.createUser()。
-
请按照此在 Mongodb 3.0 docs.mongodb.org/v3.0/tutorial/add-user-administrator987654322@上创建管理员用户
-
MongoDB 3.0+ 的更新:How to set up authentication in MongoDB 3.0.
-
明确一点,这不会加密通过网络传输的字节。它仅用于访问控制。