Vay burada çok karmaşık / kafa karıştırıcı cevaplar.
Bu v3.4 itibariyle .
Kısa cevap.
1) MongoDB'yi erişim kontrolü olmadan başlatın.
mongod --dbpath /data/db
2) Örneğe bağlanın.
mongo
3) Kullanıcıyı oluşturun.
use some_db
db.createUser(
{
user: "myNormalUser",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "some_db" },
{ role: "read", db: "some_other_db" } ]
}
)
4) MongoDB örneğini durdurun ve erişim kontrolü ile yeniden başlatın.
mongod --auth --dbpath /data/db
5) Bağlayın ve kullanıcı olarak kimlik doğrulaması yapın.
use some_db
db.auth("myNormalUser", "xyz123")
db.foo.insert({x:1})
use some_other_db
db.foo.find({})
Uzun cevap: Düzgün anlamak istiyorsanız bunu okuyun.
Gerçekten çok basit. Aşağıdakileri aptal hale getireceğim https://docs.mongodb.com/manual/tutorial/enable-authentication/
Rollerin gerçekte ne yaptığı hakkında daha fazla bilgi edinmek isterseniz, burada daha fazla bilgi edinin: https://docs.mongodb.com/manual/reference/built-in-roles/
1) MongoDB'yi erişim kontrolü olmadan başlatın.
mongod --dbpath /data/db
2) Örneğe bağlanın.
mongo
3) Kullanıcı yöneticisini oluşturun. Aşağıdaki, adminkimlik doğrulama veritabanında bir kullanıcı yöneticisi oluşturur . Kullanıcı veritabanı dbOwnerüzerinde ve some_dbveritabanı üzerinde DEĞİL admin, bu hatırlamak önemlidir.
use admin
db.createUser(
{
user: "myDbOwner",
pwd: "abc123",
roles: [ { role: "dbOwner", db: "some_db" } ]
}
)
Veya herhangi bir veritabanı üzerinden yönetici olan bir yönetici oluşturmak istiyorsanız:
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
4) MongoDB örneğini durdurun ve erişim kontrolü ile yeniden başlatın.
mongod --auth --dbpath /data/db
5) Kullanıcı yöneticisi olarak adminkimlik doğrulama veritabanına değil , kimlik doğrulama veritabanına bağlanın ve kimlik some_dbdoğrulaması yapın. Kullanıcı yöneticisi adminkimlik doğrulama veritabanında oluşturuldu , kullanıcı some_dbkimlik doğrulama veritabanında yok.
use admin
db.auth("myDbOwner", "abc123")
Artık veritabanı dbOwnerüzerinden kimlik doğrulaması yapıyorsunuz some_db. Yani şimdi okumak / yazmak / doğrudan some_dbveritabanına doğru şeyler yapmak istiyorsanız bunu değiştirebilirsiniz.
use some_db
//...do stuff like db.foo.insert({x:1})
// remember that the user administrator had dbOwner rights so the user may write/read, if you create a user with userAdmin they will not be able to read/write for example.
Roller hakkında daha fazla bilgi: https://docs.mongodb.com/manual/reference/built-in-roles/
Kullanıcı yöneticisi olmayan ve yalnızca normal kullanıcılar olan ek kullanıcılar yapmak istiyorsanız, aşağıda okumaya devam edin.
6) Normal bir kullanıcı oluşturun. Bu kullanıcı some_dbaşağıdaki kimlik doğrulama veritabanında oluşturulacak .
use some_db
db.createUser(
{
user: "myNormalUser",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "some_db" },
{ role: "read", db: "some_other_db" } ]
}
)
7) Mongo kabuğundan çıkın, yeniden bağlanın, kullanıcı olarak kimlik doğrulaması yapın.
use some_db
db.auth("myNormalUser", "xyz123")
db.foo.insert({x:1})
use some_other_db
db.foo.find({})