MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mengonfigurasi Otentikasi MongoDB-CR sebagai Default di MongoDB 3.x

Semua pengguna yang dibuat di MongoDB 3.x dibuat dengan SCRAM-SHA1 yang merusak kompatibilitas mundur dengan alat yang mengharapkan MongoDB-CR. Ada daftar alat dan driver yang belum diperbarui untuk mendukung SCRAM-SHA1, seperti Robomongo dan MongoVUE.

Dalam beberapa kasus, meskipun versi driver/ORM yang lebih baru tersedia, Anda mungkin belum siap untuk meningkatkan versi driver karena beberapa masalah kompatibilitas.

MongoDB mendukung dua metode otentikasi:

  1. MongoDB- CR (Tantangan-respons)
    Mekanisme untuk mengautentikasi pengguna dengan kata sandi. Mekanisme otentikasi default hingga 2.6.x. Lihat dokumentasi untuk detail lebih lanjut.
  2. SCRAM-SHA1
    Ini adalah standar IETF untuk mekanisme respons tantangan untuk mengautentikasi pengguna dengan kata sandi. Ini adalah sistem yang lebih baru dan lebih aman. Ini tidak kompatibel dengan MongoDB-CR. Lihat dokumentasi untuk detail lebih lanjut.

MongoDB CR adalah sistem otentikasi warisan. MongoDB 3.X mengalihkan sistem otentikasi pengguna default ke SCRAM-SHA1. Jadi, setiap pengguna baru yang dibuat dalam sistem adalah pengguna SCRAM-SHA1. Karena SCRAM-SHA1 tidak kompatibel ke belakang, ia merusak auth dengan semua pengguna yang menggunakan mekanisme MONGODB-CR.

Namun, Anda mungkin ingin menggunakan mesin penyimpanan WiredTiger baru yang tersedia di MongoDB 3.x. Berikut adalah langkah-langkah untuk mengonfigurasi MONGODB-CR sebagai mekanisme otentikasi default di MongoDB 3.x, dengan asumsi Anda menjalankan set replika:

  1. Buat kluster MongoDB 3.x.
  2. Hentikan semua node dari kumpulan replika selain yang utama.
  3. Nonaktifkan autentikasi pada primer dan mulai ulang node. Saya melakukan ini dengan mengomentari entri berikut di file conf MongoDB dan memulai ulang server:
    #security:
    #  authorization: enabled
    #  keyFile: /var/lib/mongo/rskey
    #replication:
    #  replSetName: RS-rsname-0
    
  4. Hubungkan ke primer dan ubah versi skema:
    use admin;
    var schema = db.system.version.findOne({"_id" : "authSchema"});
    schema.currentVersion = 3;
    db.system.version.save(schema)
    
  5. Urungkan perubahan pada file mongodb.conf pada langkah 3 di atas dan mulai ulang MongoDB.
  6. Mulai ulang MongoDB pada node lain dari kumpulan replika dan pastikan bahwa kumpulan replika itu sehat. Setelah ini selesai, semua pengguna yang dibuat pada sistem akan menjadi pengguna MongoDB-CR. Anda dapat memvalidasi ini dengan menjalankan perintah berikut:
    db.system.users.find().pretty();
    

Namun, perhatikan, ini seharusnya hanya solusi sementara. Perbaikan jangka panjang yang lebih aman adalah memutakhirkan server MongoDB Anda untuk menggunakan model SCRAM-SHA1. Setelah Anda siap untuk meningkatkan, jalankan skrip berikut untuk meningkatkan versi skema pengguna Anda ke SCRAM-SHA1:

db.getSiblingDB("admin").runCommand({authSchemaUpgrade});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. cara mengunduh file yang disimpan di gridFS menggunakan nodeJS

  2. php mongodb pencarian dan pengurutan teks lengkap

  3. Mongo tidak dapat memulai

  4. Docker:ubah folder tempat menyimpan volume buruh pelabuhan

  5. Mendapatkan stempel waktu dari mongodb id