Başka bir olasılık: Kullanıcıyı oluşturduğunuzda, yanlışlıkla istediğiniz useveritabanı dışında adminveya başka bir veritabanını kullanıyor olabilirsiniz . --authenticationDatabaseKullanıcının gerçekte altında oluşturulduğu veritabanını ayarlamanız gerekir .
mongodbkoymak gibi görünüyor testEğer kabuk açtığınızda iletişim kurmanız gerekir, böylece varsayılan olarak veritabanında --authenticationDatabase testyerine --authenticationDatabase adminyanlışlıkla olsaydı useing testkaçtın zaman db.createUser(...).
Mongodb örneğini çalıştıran makineye erişiminiz olduğunu varsayarsak, yetkilendirmeyi devre dışı bırakabilir /etc/mongod.conf( authorizationgüvenlik altında iç içe geçmiş olan açıklama ) ve ardından sunucunuzu yeniden başlatabilir ve ardından şunu çalıştırabilirsiniz:
mongo
show users
Ve bunun gibi bir şey elde edebilirsiniz:
{
"_id" : "test.myusername",
"user" : "myusername",
"db" : "test",
"roles" : [
{
"role" : "dbOwner",
"db" : "mydatabasename"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
dbDeğerin eşit olduğuna dikkat edin test. Bunun nedeni, kullanıcıyı oluşturduğumda ilk önce use adminya da use desiredDatabaseName. Böylece kullanıcıyı silebilir db.dropUser("myusername")ve ardından aşağıdaki gibi istediğiniz veri tabanı altında başka bir kullanıcı oluşturabilirsiniz:
use desiredDatabaseName
db.createUser(...)
Umarım bu, bu tür şeylerde çaylak olarak konumumda olan birine yardımcı olur.