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

Преглед на управлението на потребителите на MongoDB

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

MongoDB е NoSQL база данни и хранилище за документи. Прилагането на концепцията RBAC (Role Based-Access Control) е от ключово значение за прилагането на правилно управление на потребителите за управление на потребителските идентификационни данни.

Какво е контрол на достъпа, базиран на роли (RBAC)?

RBAC е подход, който ограничава системата само до оторизирани потребители. В една организация ролите се създават за различни работни функции, в базата данни след това създаваме правата за достъп за извършване на някои операции, присвоени на конкретна роля.

На членовете на персонала (или на други потребители на системата) се присвояват определени роли и чрез тях им се присвояват разрешения за изпълнение на функциите на компютърната система. Потребителите не получават директно разрешения, а ги получават само чрез своята роля (или роли). Управлението на индивидуалните потребителски права става въпрос на просто поставяне на подходяща роля в акаунта на потребителя; това опростява общите операции (като добавяне на потребители или смяна на потребителски отдели).

За RBAC са зададени три основни правила:

  • Присвояване на роля :Субектът може да изпълнява разрешения само ако субектът е избран или му е назначена роля.
  • Ролята на упълномощаването :активната роля на субект трябва да бъде разрешена за субекта. С правило 1 по-горе, това правило гарантира, че потребителите могат да поемат роли само за тези, които са упълномощени.
  • Оторизиране на разрешение :Субектът може да изпълнява разрешения само ако разрешението е разрешено за активната роля на субекта. С правила 1 и 2 това правило гарантира, че потребителите могат да упражняват разрешение само за тези, които са упълномощени.

Този блог ще прегледа накратко базиран на роли контрол на достъпа в базата данни MongoDB.

Потребителски роли на MongoDB

MongoDB има няколко типа роли в базата данни, това са...

Вградени роли

Осигурява достъп до данни и действия до MongoDB чрез упълномощаване, базирано на роли, и има вградени роли, които осигуряват няколко нива на достъп в базата данни.

Ролята дава няколко привилегии за извършване на нещо в ресурса, който е създаден. Вградените роли в MongoDB имат няколко категории:

  • Потребителска база данни :Роли Потребителите на базата данни имат роля да манипулират данни в несистемно събиране. Примери за роли на потребителска база данни са:read, readWrite.
  • Администриране на база данни :Роли Администрирането на база данни се занимава с административно управление на бази данни, като потребителска администрация, схема и обекти в нея.
  • Примери за роли на администриране на база данни са:dbAdmin, userAdmin, dbOwner.
  • Администриране на клъстер :Ролята на администрирането на клъстера е да администрира цялата система MongoDB, включително нейните реплики и фрагменти. Примери за роли за администриране на клъстери са:clusterAdmin, clusterManager.
  • Архивиране и възстановяване :Тези роли са специфични за функции, свързани с архивиране на база данни в MongoDB. Примери за роли са:архивиране, възстановяване.
  • Всички роли в базата данни :Ролите са в администратора на базата данни и имат достъп до всички бази данни с изключение на локална и конфигурация. Примери са:readAnyDatabase, readWriteAnyDatabase, userAdminAnyDatabase.
  • Суперпотребител :Roles има способността да предоставя достъп на всеки потребител, до всяко привилегия, във всички бази данни. Пример за тази роля:root

Потребителски дефинирани роли

В допълнение към вградените роли, можем да създадем свои собствени роли според нашите нужди, какви привилегии ще дадем на тези роли. За да създадете роли, можете да използвате функцията команда db.createRole (). Освен възможността за създаване на роли, има няколко други функции за управление на съществуващи роли като:db.dropRole (), което е полезно за изтриване на съществуващи роли в базата данни, db.getRole () функции за получаване на цялата информация от конкретни роли.

Действия за привилегии в MongoDB

Действията с привилегии в MongoDB са действия, които могат да бъдат извършени от потребител на ресурс. MongoDB има няколко категории действия, а именно:

  • Действия за управление на базата данни, действия, свързани с команди, свързани с администриране на база данни, като например changePassword, createCollection, createIndex действия.
  • Действия за заявка и запис, действия, свързани с извършване на манипулиране на данни в колекция. Например при действието за вмъкване, командата, която може да се изпълни при това действие, е командата за вмъкване, която може да се вмъкне в документи.
  • Действия за управление на внедряването, действия, свързани с промени в конфигурацията на базата данни. Някои действия, които попадат в категорията за управление на внедряването, са cpuProfiler, storageDetails, killOp.
  • Действия за репликация, действия, свързани с изпълнението на ресурси за репликация на база данни, като replSetConfigure, replSetHeartbeat.
  • Действия за администриране на сървъра, действия, свързани с команди от ресурси за администриране на сървъра в mongoDB, като например действия за завъртане на лог, които се използват за завъртане на базите данни с регистрационни файлове на ниво операционна система.
  • Действия за разделяне, действия, свързани с команди от бази данни за разделяне на база данни, като addShard за добавяне на нови възли на сегменти.
  • Действия на сесията, действия, свързани с ресурсни сесии в база данни, като listSessions, killAnySession.
  • Диагностични действия, действия, свързани с диагностицирането на ресурси като dbStats за откриване на най-новите условия в базата данни.
  • Безплатни действия за наблюдение, действия, свързани с наблюдение в базата данни.

Управление на потребители и роли на MongoDB

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

db.createUser( {

user: "admin",

pwd: "thisIspasswordforAdmin",

roles: [ { role: "root", db: "admin" } ]

} );

В скрипта по-горе, което означава, че администраторският потребител ще бъде направен с парола, която е била дефинирана с вградени основни роли, където ролята е включена в категорията Суперпотребител.

Освен това можете да присвоите повече от една роли на потребител, ето един пример:

db.createUser(

{user:'businessintelligence', 

pwd:'BIpassw0rd', 

roles:[{'role':'read', 'db':'oltp'}, { 'role':'readWrite', 'db':'olapdb'}]

});

Потребителите на бизнес разузнаване имат 2 роли, първо ролите за четене в базата данни oltp и ролите за readWrite в базата данни olapdb.

Създаването на потребителски дефинирани роли може да използва командата db.createRole (). Трябва да определите целта на създаването на ролята, за да можете да определите какви действия ще бъдат в тази роля. Следва пример за създаване на роля за наблюдение на базата данни Mongodb:

use admin

db.createRole(

   {

     role: "RoleMonitoring",

     privileges: [

       { resource: { cluster: true }, actions: [ "serverStatus" ] }

     ],

     roles: []

   }

)

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

db.createUser( {

user: "monuser",

pwd: "thisIspasswordforMonitoring",

roles: [ { role: "RoleMonitoring", db: "admin" } ]

} );

Междувременно, за да присвоите ролята на съществуващ потребител, можете да използвате следната команда:

db.grantRolesToUser(

    "existingmonuser",

    [

      { role: "RoleMonitoring", db: "admin" }

    ]

)

За да отмените съществуващ потребител на роля, можете да използвате следната команда:

db.revokeRolesFromUser(

    "oldmonguser",

    [

      { role: "RoleMonitoring", db: "admin" }

    ]

)

Като използваме дефинирани от потребителя роли, можем да създаваме роли, както желаем, според действията, които ще предприемем върху тези роли, като роли за ограничаване на потребителите, които могат да изтриват редове само в определени бази данни.

Заключение

Прилагането на права за достъп може да подобри сигурността. Съпоставянето на роли и потребители в базата данни ви улеснява да управлявате потребителския достъп.

Уверете се, че цялата тази информация относно ролите и правата е правилно документирана с ограничен достъп до документа. Това ви помага да споделяте информацията с другия DBA или персонала за поддръжка и е удобен за одити и отстраняване на неизправности.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Възможно ли е да генерирате динамично наречени MongoDB колекции?

  2. Контролен списък за сигурност за производствени внедрявания на MongoDB

  3. Как да създадете текстов индекс в MongoDB

  4. Изпълняване на MongoDB с Ops Manager

  5. Асоциация „Много към много“ на MongoDB