MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Първи стъпки с MongoDB User Management

Една от първите задачи след стартиране и стартиране на вашия сървър на база данни MongoDB е да конфигурирате вашите потребители и бази данни. В тази публикация ще разгледаме някои от често срещаните сценарии за създаване и конфигуриране на потребители в MongoDB. Управлението на потребителите на MongoDB се е подобрило много значително спрямо предишните две версии и вече е способен и функционален модел за управление на потребителите. На потребителите могат да бъдат присвоени различни роли и ролите могат да бъдат конфигурирани с желаните привилегии. Има няколко вградени потребителски роли за използване или можете да създадете свои собствени персонализирани роли.

Примерите в тази публикация използват клиент 2.6.4 и сървър 2.6.4. Бяха направени значителни промени в модела за управление на потребителите от 2.4 до 2.6. Така че, ако използвате клиент 2.4, много от примерите в тази публикация няма да работят за вас. Можете да проверите версията на клиента yoMongoDBodb, като използвате следния синтаксис:

mongo --версия

Добавяне на потребител към база данни

Първата стъпка след създаването на вашия потребител е да създадете базата данни на приложението си:

използвайте applicationdb;

След създаването на тази база данни искаме да създадем потребителя, който ще бъде използван от приложението за запис в тази база данни. Искаме този потребител да има права за четене и запис в базата данни:

db.createUser({'user':'appuser', 'pwd':'', roles:['readWrite']});

Понякога искаме също да добавим потребители, които имат достъп само за четене до базата данни. Например, може да искаме да добавим потребител на аналитика, който има достъп само за четене до базата данни:

db.createUser({'user':'analyticsuser', 'pwd':'', roles:['read']});

Сега, когато потребителите са създадени, нека се опитаме да се свържем като този потребител от конзолата MongoDB:

mongo -u 'appuser' -p <име на сървър>/applicationdbMongoDB версия на обвивката:2.6.4 свързване към:<име на сървър>/applicationdb>

Трябваше да сте се свързали успешно! Обърнете внимание, че „/applicationdb“ в края на синтаксиса казва на MongoDB да удостовери „appuser“ в базата данни „applicationdb“.

Добавяне на потребител към множество бази данни

В много сценарии трябва да създадем множество бази данни на сървъра. Например, в този сценарий може да се наложи да създадем друга база данни „analyticsdb“, за да съхраняваме резултатите от анализа. „Analyticsuser“ вече се нуждае от достъп „само за четене“ за разрешенията „applicationdb“ и „readWrite“ в „analyticsdb“.

И така, как да постигнем това? Трябва ли да добавим „analyticsuser“ към всяка база данни? Това създава кошмар за управление в дългосрочен план, тъй като се добавят много потребители и бази данни. За щастие има просто решение. Можем да централизираме назначенията на роли за потребител и да ги съхраняваме в една база данни. В този сценарий предпочитам да съхранявам тези назначения в базата данни „администратор“, тъй като тя е центърът на централната администрация в сървъра, но можете също да го съхранявате в отделна база данни:

използвайте admindb.createUser({user:'analyticsuser', pwd:'', roles:[{'role':'read', 'db':'applicationdb'}, { 'role':' readWrite', 'db':'analyticsdb'}]});

След като бъде добавен, можете да използвате „покажи потребителите“, за да покажете подробностите за вашите потребители. Ето как изглежда моята администраторска база данни:

use admin> показване на потребителите{"_id" :"admin.admin","user" :"admin","db" :"admin","roles" :[{ "role" :"root"," db" :"admin"},{"role" :"възстановяване","db" :"admin"}]}{"_id" :"admin.analyticsuser","user" :"analyticsuser","db" :"admin","roles" :[{"role" :"read","db" :"applicationdb"},{"role" :"readWrite","db" :'analyticsdb"}]}>

Сега, когато нашият потребител е добавен, нека се опитаме да се свържем от конзолата, за да проверим удостоверяването, като използваме синтаксиса, който използвахме по-горе:

mongo -u 'analyticsuser' -p  /applicationdb

Удостоверяването обаче е неуспешно:

2014-10-06T23:11:42.616+0000 Грешка:18 { ok:0.0, errmsg:"auth failed", code:18 } в src/mongo/shell/db.js:1210exception:неуспешно влизане 

Причината е, че „analyticsuser“ е дефиниран в базата данни „admin“, а не в „applicationdb“. Начинът да укажете това е да използвате параметъра „–authenticationDatabase“.

mongo -u 'analyticsuser' -p  /applicationdb --authenticationDatabase 'admin'

Този път влизането е успешно:

Версия на обвивката на MongoDB:2.6.4 свързване към:/applicationdb

За да разберете по-добре различните други вградени роли, налични в MongoDB, можете да се обърнете към документацията на MongoDB за вградените роли. Както винаги, ако имате допълнителни въпроси, можете да се свържете с нас на [email protected].


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Актуализиране на обект на масив въз основа на идентификатора?

  2. PHP Mongo Грешка при четене от сокет

  3. MongoDB заместващ знак в ключа на заявка

  4. MongoDB:изключение в initAndListen:20 Опит за създаване на файл за заключване в директория само за четене:/data/db, прекратяване

  5. MongoDB $lte оператор на конвейера за агрегация