Yerel ve üretimde aynı bağlantı dizesini kullanıyorum. Bağlantı dizesi olduğundamongodb://localhost/mydb
Kullanıcı adı ve şifre nedir? Bu şekilde tutmak güvenli mi?
Yerel ve üretimde aynı bağlantı dizesini kullanıyorum. Bağlantı dizesi olduğundamongodb://localhost/mydb
Kullanıcı adı ve şifre nedir? Bu şekilde tutmak güvenli mi?
Yanıtlar:
Varsayılan olarak mongodb'un etkin bir erişim kontrolü yoktur, bu nedenle varsayılan kullanıcı veya şifre yoktur.
Erişim denetimini etkinleştirmek için, komut satırı seçeneğini --authveya security.authorization yapılandırma dosyası ayarını kullanın.
Aşağıdaki prosedürü kullanabilir veya MongoDB belgelerinde Kimlik Doğrulamayı Etkinleştirme bölümüne bakabilirsiniz .
MongoDB'yi erişim kontrolü olmadan başlatın.
mongod --port 27017 --dbpath /data/db1
Örneğe bağlanın.
mongo --port 27017
Kullanıcı yöneticisini oluşturun.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
MongoDB örneğini erişim denetimiyle yeniden başlatın.
mongod --auth --port 27017 --dbpath /data/db1
Kullanıcı yöneticisi olarak doğrulayın.
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
@Camilo Silva'nın daha önce bahsettiği şeye ek olarak, veritabanları oluşturmak, okumak, yazmak vb. İçin ücretsiz erişim vermek istiyorsanız, ancak bir kök rol oluşturmak istemiyorsanız, 3. adımı aşağıdakilerle değiştirebilirsiniz:
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
}
)
2.6'dan önceki MongoDB için, bir kök kullanıcı ekleme komutu addUser(ör.)
db.addUser({user:'admin',pwd:'<password>',roles:["root"]})
db.addUser. 2.6'dan başlayarak ve güncel 3.4.x sürümünde ile bir kullanıcı oluşturabilirsiniz db.CreateUser.
db.createUser;) ( docs.mongodb.com/manual/reference/method/db.createUser )
Önceden sağlanan yanıtlara ek olarak, db'niz zaten erişim denetimi ( --authanahtar) ile başlatılmışsa, ilk kullanıcıyı oluşturmak için 'localhost istisnası' yaklaşımını izlemektir . Bunu yapmak için, sunucuya localhost erişiminizin olması ve ardından şunu çalıştırmanız gerekir:
mongo
use admin
db.createUser(
{
user: "user_name",
pwd: "user_pass",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" }
]
})
MongoDB belgelerinde belirtildiği gibi:
Localhost istisnası, erişim kontrolünü etkinleştirmenize ve ardından sistemdeki ilk kullanıcıyı oluşturmanıza olanak tanır. Localhost istisnasıyla, erişim kontrolünü etkinleştirdikten sonra, localhost arayüzüne bağlanın ve admin veritabanında ilk kullanıcıyı oluşturun. İlk kullanıcının, userAdmin veya userAdminAnyDatabase rolüne sahip bir kullanıcı gibi diğer kullanıcıları oluşturma ayrıcalıklarına sahip olması gerekir. Localhost istisnasını kullanan bağlantılar, yalnızca yönetici veritabanındaki ilk kullanıcıyı oluşturma erişimine sahiptir.
İşte belgelerin o bölümünün bağlantısı .