Пример аутентификации MongoDB
В этом руководстве показано, как включить аутентификацию в MongoDB. По умолчанию аутентификация отключена. Чтобы настроить его, вы должны сначала добавить пользователя в базу данных «admin».
> show dbs admin #add single user to this database testdb
Note
Пользователи с обычным доступом к базе данных «admin» ИМЕЮТ доступ для чтения и записи ко всем остальным базам данных. Пользователи с доступом только для чтения к базе данных «admin» ИМЕЮТ только чтение для всех баз данных.
P.S This example is using MongoDB version 2.2.3
Пример аутентификации
См. Полный пример добавления пользователя «admin» в базу данных администратора и обычного пользователя в базу данных «testdb», а также способ выполнения аутентификации.
Терминал 1 - запустите MongoDB в безопасном режиме, требуется аутентификация.
$mongo --auth
Терминал 2 - клиент MongoDB, см. Комментарий «#», который не требует пояснений.
$ mongo
MongoDB shell version: 2.2.3
connecting to: test
> use admin #1. connect to the "admin" database.
switched to db admin
> db.addUser("admin","password") #2. add a user "admin" to the admin database.
{
"user" : "admin",
"readOnly" : false,
"pwd" : "90f500568434c37b61c8c1ce05fdf3ae",
"_id" : ObjectId("513af8cac115e7a6b4bcceb9")
}
addUser succeeded, but cannot wait for replication since we no longer have auth
> use testdb #3. connect to the "testdb" database.
switched to db testdb
> show collections #4. now, read and write need authentication
Sat Mar 9 16:54:57 uncaught exception: error: {
"$err" : "unauthorized db:testdb ns:testdb.system.namespaces lock type:0 client:127.0.0.1",
"code" : 10057
}
> use admin #5. connect back to the "admin" database.
switched to db admin
> db.auth("admin","password") #6. performs authentication, 1 means succeed, 0 means failed
1
> use testdb #7. connect to the "testdb" database.
switched to db testdb
> show collections #8. no problem, it shows all collections
system.indexes
user
> db.addUser("testdb","password") #9. add another user "testdb" to the "testdb" database.
{
"user" : "testdb",
"readOnly" : false,
"pwd" : "b9ff75cbf18bd98d8554efec12c72090",
"_id" : ObjectId("513af934c115e7a6b4bcceba")
}
> show collections
system.indexes
system.users #10. All users' data are stored in this system.users collection.
user
> db.system.users.find()
{ "_id" : ObjectId("513af934c115e7a6b4bcceba"), "user" : "testdb", "readOnly" : false, "pwd" : "b9ff75cbf18bd98d8554efec12c72090" }
>
Готово.