MongoDB: метод db.createUser ()
db.createUser ()
Метод db.createUser () используется для создания нового пользователя.
Синтаксис:
db.createUser (пользователь, writeConcern)
Создает нового пользователя для базы данных, в которой работает метод. db.createUser () возвращает повторяющуюся ошибку пользователя, если пользователь уже существует в базе данных.
Метод db.createUser () имеет следующий синтаксис:
Параметры:
название | Описание | Необходимые / Необязательный | Тип |
---|---|---|---|
пользователь | Документ с аутентификацией и доступом к информации о пользователе для создания. | необходимые | документ |
writeConcern | Уровень записи касается операции создания. Документ writeConcern принимает те же поля, что и команда getLastError. | Необязательный | документ |
Пользовательский документ определяет пользователя и имеет следующую форму:
{ user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
]
}
Пользовательский документ имеет следующие поля:
название | Описание | Необходимые / Необязательный | Тип |
---|---|---|---|
пользователь | Имя нового пользователя. | Необязательный | строка |
PWD | Пароль пользователя. Поле pwd не требуется, если вы запускаете db.createUser () в базе данных $ external для создания пользователей, чьи учетные данные хранятся внешне в MongoDB. | необходимые | строка |
CustomData | Любая произвольная информация. Это поле может использоваться для хранения любых данных, которые администратор желает связать с этим конкретным пользователем. Например, это может быть полное имя пользователя или идентификатор сотрудника. | Необязательный | документ |
роли | Роли, предоставленные пользователю. Можно указать пустой массив [] для создания пользователей без ролей. | необходимые | массив |
В поле ролей вы можете указать как встроенные роли, так и определенные пользователем роли.
Чтобы указать роль, которая существует в той же базе данных, где выполняется db.createUser (), вы можете указать роль с именем роли:
"readWrite"
Или вы можете указать роль с документом, как в:
{ role: "<role>", db: "<database>" }
Чтобы указать роль, которая существует в другой базе данных, укажите роль с документом.
Метод db.createUser () переносит команду createUser.
Возвращает: db.auth () возвращает 0, если аутентификация не удалась, и 1, если операция прошла успешно.
Пример: создание пользователя с ролями
Следующая операция создает mynewuser в тестовой базе данных и дает пользователю роли readWrite и dbAdmin.
use test
db.createUser(
{
user: "mynewuser",
pwd: "myuser123",
roles: [ "readWrite", "dbAdmin" ]
}
);
Выход:
> использовать тест перешел на дб тест > db.createUser ( ... { ... пользователь: "mynewuser", ... pwd: "myuser123", ... role: ["readWrite", "dbAdmin"] ...} ...); Успешно добавлен пользователь: {"user": "mynewuser", "role": ["readWrite", "dbAdmin"]}
Пример: создание пользователя без ролей
Следующая операция создает пользователя с именем mynewuser1 в тестовой базе данных, но еще не назначает роли:
use test
db.createUser(
{
user: "mynewuser1",
pwd: "myuser1123",
roles: [ ]
}
);
Выход:
> использовать тест перешел на дб тест > db.createUser ( ... { ... пользователь: "mynewuser1", ... pwd: "myuser1123", ... роли: [] ...} ...); Успешно добавлен пользователь: {"user": "mynewuser1", "role": []}
Пример: создание административного пользователя с ролями
Следующая операция создает пользователя с именем myadmin1 в базе данных администратора и предоставляет пользователю доступ для чтения readWrite к базе данных конфигурации, что позволяет пользователю изменять определенные параметры для сегментированных кластеров, например настройки балансировщика.
use admin
db.createUser(
{
user: "myadmin1",
pwd: "myadmin123",
roles:
[
{ role: "readWrite", db: "config" },
"clusterAdmin"
]
}
);
Выход:
> использовать админ перешел на дб админ > db.createUser ( ... { ... пользователь: "myadmin1", ... pwd: "myadmin123", ... роли: ... [ ... {role: "readWrite", db: "config"}, ... "clusterAdmin" ...] ...} ...); Пользователь успешно добавлен: { "пользователь": "myadmin1", "роли": [ { "role": "readWrite", "db": "config" }, "ClusterAdmin" ] }
Получить данные о ресторанах здесь
Поведение
шифрование
db.createUser () отправляет пароль к экземпляру MongoDB без шифрования. Чтобы зашифровать пароль во время передачи, используйте TLS / SSL.
Внешние полномочия
Пользователи, созданные в базе данных $ external, должны иметь учетные данные, хранимые снаружи в MongoDB, как, например, в установках MongoDB Enterprise, использующих Kerberos.
локальная база данных
Вы не можете создавать пользователей в локальной базе данных.
Требуемый доступ
- Чтобы создать нового пользователя в базе данных, вы должны иметь действие createUser для этого ресурса базы данных.
- Чтобы предоставить роли пользователю, у вас должно быть действие grantRole в базе данных роли.
Встроенные роли userAdmin и userAdminAnyDatabase обеспечивают действия createUser и grantRole для своих соответствующих ресурсов.
Предыдущая: метод db.auth ()
Далее: метод db.updateUser ()
Новый контент: Composer: менеджер зависимостей для PHP , R программирования