Як створити користувача та додати роль MongoDB
MongoDB Створення користувача адміністратора
Створення адміністратора користувача в MongoDB виконується за допомогою методу createUser. Наступний приклад показує, як це можна зробити.
db.createUser( { user: "Guru99", pwd: "password", roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})
Пояснення коду:
- Перший крок — вказати «ім’я користувача» та «пароль», які потрібно створити.
- Другим кроком є призначення ролі для користувача. Оскільки він має бути адміністратором бази даних, у цьому випадку ми призначили роль «userAdminAnyDatabase». Ця роль дозволяє користувачеві мати адміністративні привілеї для всіх баз даних у MongoDB.
- Параметр db визначає базу даних адміністратора, яка є спеціальною мета-базою даних усередині MongoDB який містить інформацію для цього користувача.
Якщо команда виконана успішно, буде показано наступний результат:
вихід:
Вихідні дані показують, що було створено користувача під назвою «Guru99» і цей користувач має привілеї на всі бази даних у MongoDB.
MongoDB Створення користувача для єдиної бази даних
Щоб створити користувача, який керуватиме єдиною базою даних, ми можемо використати ту саму команду, що й згадана вище, але нам потрібно використовувати лише опцію «userAdmin».
Наступний приклад показує, як це можна зробити;
db.createUser( { user: "Employeeadmin", pwd: "password", roles:[{role: "userAdmin" , db:"Employee"}]})
Пояснення коду:
- Перший крок — вказати «ім’я користувача» та «пароль», які потрібно створити.
- Другим кроком є призначення ролі для користувача, якому в даному випадку, оскільки він має бути адміністратором бази даних, призначається роль «userAdmin». Ця роль дозволяє користувачеві мати адміністративні привілеї лише для бази даних, указаної в параметрі db.
- Параметр db визначає базу даних, до якої користувач має мати права адміністратора.
Якщо команда виконана успішно, буде показано наступний результат:
вихід:
Вихідні дані показують, що користувача під назвою «Employeeadmin» було створено, і цей користувач має привілеї лише для бази даних «Employee».
Керування користувачами
Спочатку зрозумійте ролі, які вам потрібно визначити. Існує цілий список доступних ролей MongoDB. Наприклад, існує роль «читання», яка дозволяє лише доступ до баз даних лише для читання, а також роль «читання і запис», яка надає доступ для читання та запису до бази даних, що означає, що користувач може вставляти, видаляти та оновити команди колекцій у цій базі даних.
db.createUser( { user: "Mohan", pwd: "password", roles:[ { role: "read" , db:"Marketing"}, { role: "readWrite" , db:"Sales"} } ] })
Наведений вище фрагмент коду показує, що створено користувача під назвою Mohan, і йому призначено кілька ролей у кількох базах даних. У наведеному вище прикладі йому надано дозвіл лише на читання для бази даних «Маркетинг» і дозвіл на читання і запис для бази даних «Продажі».