Di mana, yaitu di basis data mana Anda membuat pengguna? Biasanya pengguna dibuat di database admin
. Saat Anda terhubung ke MongoDB maka Anda harus selalu menentukan database otentikasi dan database yang ingin Anda gunakan.
Defaultnya agak membingungkan dan tidak terlalu konsisten, lihat tabel ini untuk mendapatkan gambaran umum:
+----------------------------------------------------------------------------------------+
|Connection string | Authentication | Current |
| | database | database |
+----------------------------------------------------------------------------------------+
|mongo -u <...> -p <...> --authenticationDatabase admin myDB | admin | myDB |
|mongo -u <...> -p <...> myDB | myDB | myDB |
|mongo -u <...> -p <...> --authenticationDatabase admin | admin | test |
|mongo -u <...> -p <...> localhost:27017 | test | test |
|mongo -u <...> -p <...> --host localhost:27017 | admin | test |
|mongo -u <...> -p <...> | admin | test |
+----------------------------------------------------------------------------------------+
Jika Anda ingin menggunakan Connection string dalam format URI, itu akan sesuai dengan yang berikut:
mongodb://<username>:<password>@hostname/myDB?authSource=admin
mongodb://<username>:<password>@hostname/myDB
mongodb://<username>:<password>@hostname?authSource=admin
mongodb://<username>:<password>@hostname
Saya kira Anda membuat pengguna di admin
database tetapi karena Anda tidak menentukan otentikasiDatabase saat menghubungkan, Mongo default ke mydatabase
di mana gagal, karena pengguna tidak ada di database mydatabase
.