MongoDB Kimlik Doğrulama Başarısız: authSource=admin Eksikliği, Yanlış Veritabanı Rolleri ve SCRAM Uyumluluğu
Kullanıcının admin veritabanında oluşturulup bağlantı dizesinde authSource belirtilmemesi sonucu reddedilen bağlantılar; rol doğrulama ve SCRAM-SHA-256 standardı.
Operasyonel Doğrulama & Güvenilirlik Standardı
Hata mesajı semptomdur, kök neden değildir. Sunucuyu yeniden başlatmadan veya rastgele ayar değiştirmeden önce aşağıdaki "Nedeni ayırt eden tek sorgu"yu çalıştırarak gerçek senaryoyu netleştirin.
▸Belirti
İstemci şifre doğru olmasına rağmen veritabanına bağlanamaz:
MongoServerError: Authentication failed.
MongoSecurityException: Exception authenticating MongoCredential: UserNotFound: Could not find user "app_user" for db "prod"▸Sahada Ne Görürsün?
Kullanıcı adı ve şifre doğrudur ancak istemci prod veritabanında kullanıcıyı arar ve bulamaz. Bağlantı reddedilir.
▸Kök Neden Matrisi
| Olasılık | Kök Neden | Açıklama |
|---|---|---|
| %70 | `authSource=admin` Eksikliği | Kullanıcı admin veritabanında oluşturulmuştur ancak bağlantı dizesinde hedef olarak prod verilmiştir; authSource belirtilmemiştir. |
| %20 | SCRAM-SHA-1 vs SCRAM-SHA-256 Uyuşmazlığı | Sunucu SCRAM-SHA-256 beklerken eski istemci SCRAM-SHA-1 göndermektedir. |
| %10 | Rolün Yanlış Veritabanına Tanımlanması | Kullanıcıya readWrite rolü prod yerine yanlışlıkla başka şemada atanmıştır. |
▸ACİL RUNBOOK (0-5dk)
# 1. Doğru authSource parametresi ile bağlanmayı dene
mongosh -u app_user -p --authenticationDatabase admin 10.0.0.5:27017/prod// 2. Kullanıcının hangi veritabanında olduğunu ve rollerini gör
use admin;
db.getUsers();
db.getUser("app_user");
// 3. Kullanıcıya hedef veritabanında yetki ver
db.grantRolesToUser("app_user", [
{ role: "readWrite", db: "prod" }
]);▸KALICI BLUEPRINT
- 1Standardize URI Parametresi: Tüm bağlantı dizelerinde
?authSource=adminaçıkça yer almalıdır:
mongodb://app_user:GizliSifre@node1:27017/prod?authSource=admin&replicaSet=rs0- 1SCRAM-SHA-256 Standardı: Tüm yeni rollerde varsayılan şifreleme SCRAM-SHA-256 olmalıdır.
▸Doğrulama
mongosh -u app_user -p 'GizliSifre' --authenticationDatabase admin --eval "db.stats()" 10.0.0.5:27017/prodDiğer Veritabanı Hata Teşhisleri
Kriz anında başvurabileceğiniz diğer doğrulanmış hata rehberleri.
MongoDB "not master" / NotWritablePrimary Hatası
Failover sonrası "not master" hatasının nedeni, replicaSet içermeyen bağlantı dizesi, retryWrites ve election fırtınası teşhisi.
MongoDB E11000: Duplicate Key Error Teşhisi ve Çözümü
Aynı anahtara sahip iki dokümanın eşzamanlı eklenmesiyle oluşan E11000 hatasının tespiti, getIndexes denetimi ve $setOnInsert ile upsert desenleri.
MongoDB MongoNetworkError & HostUnreachable Teşhisi
Replica set primary düğümünün çökmesi, yanlış mongodb+srv dizesi ve ağ gecikmelerinde sürücünün bağlantı havuzunu temizlemesi; rs.status() ve kalıcı timeout ayarları.