默认情况下,MongoDB没有启用访问控制,因此没有默认用户或密码。
要启用访问控制,请使用命令行选项·--auth或security.authorization配置文件设置。
具体细节请查看官方文档的启用验证章节
以下使我在Mac上测试的具体步骤:
打开终端,启动MongoDB Daemon
mongod --port 27017 --dbpath /data/db
在新的终端标签页中进入mongo shell
mongo --port 27017
创建管理员用户
use admin db.createUser({ user:"user1", pwd:"user1", roles:[{ role:"userAdminAnyDatabase", db:"admin"},{ role:"dbAdminAnyDatabase", db:"admin"},{ role:"readWriteAnyDatabase", db:"admin"}]})
在mongo shell页面输入quit()退出
在mongo daemon页面 按住ctrl-c终止进程
启用 --auth 选项重新启动mongod
$ mongod --auth --port 27017 --dbpath /data/db 2019-02-23T16:18:38.539+0800 I CONTROL[main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols'none'... ... 2019-02-23T16:18:38.553+0800 I CONTROL[initandlisten] options:{ net:{ port: 27017}, security:{ authorization:"enabled"}, storage:{ dbPath:"/data/db"}}
使用之前创建的用户登入mongo shell
$ mongo --port 27017 -u"user1" -p"user1" --authenticationDatabase"admin" MongoDB shell version v4.0.2 connecting to: mongodb://127.0.0.1:27017/ MongoDB server version: 4.0.2 ...