MongoDB: метод db.updateUser ()
db.updateUser ()
Метод db.updateUser () используется для обновления профиля пользователя в базе данных, в которой вы запускаете метод. Обновление поля полностью заменяет значения предыдущего поля. Это включает в себя обновления массива ролей пользователя.
Синтаксис:
db.updateUser ( "<Имя пользователя>", { customData: {<любая информация>}, роли: [ {role: "<role>", db: "<database>"} | "<Роль>", ... ], pwd: "<пароль открытого текста>" }, writeConcern: {<write беспокойство>} )
Параметры:
название | Описание | Необходимые / Необязательный | Тип |
---|---|---|---|
имя пользователя | Имя пользователя для обновления. | необходимые | строка |
Обновить | Документ, содержащий данные о замене для пользователя. Эти данные полностью заменяют соответствующие данные для пользователя. | необходимые | документ |
writeConcern | Уровень записи касается операции обновления. Документ writeConcern принимает те же поля, что и команда getLastError. | Необязательный | документ |
Документ обновления определяет поля для обновления и их новые значения. Все поля в документе обновления являются необязательными, но должны содержать хотя бы одно поле.
Документ обновления имеет следующие поля:
название | Описание | Необходимые / Необязательный | Тип |
---|---|---|---|
CustomData | Любая произвольная информация. | Необязательный | документ |
роли | Роли, предоставленные пользователю. Обновление массива ролей переопределяет значения предыдущего массива. | Необязательный | массив |
PWD | Пароль пользователя. | Необязательный | строка |
В поле ролей вы можете указать как встроенные роли, так и определенные пользователем роли.
Чтобы указать роль, которая существует в той же базе данных, где выполняется db.updateUser (), вы можете указать роль с именем роли:
"readWrite"
Или вы можете указать роль с документом, как в:
{ role: "<role>", db: "<database>" }
Чтобы указать роль, которая существует в другой базе данных, укажите роль с документом.
Пример: MongoDB: метод db.updateUser ()
Предоставлен пользователь mynewuser в тестовой базе данных со следующей информацией о пользователе:
> db.getUser("mynewuser");
{
"_id" : "test.mynewuser",
"user" : "mynewuser",
"db" : "test",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
},
{
"role" : "dbAdmin",
"db" : "test"
}
]
}
следующий метод db.updateUser () полностью заменяет данные ролей пользователя:
db.updateUser( "mynewuser",
{
customData : { employeeId : "0x3039" },
roles : [
{ role : "read", db : "assets" }
]
}
);
Пользователь mynewuser в тестовой базе данных теперь имеет следующую информацию о пользователе:
> db.getUser("mynewuser");
{
"_id" : "test.mynewuser",
"user" : "mynewuser",
"db" : "test",
"roles" : [
{
"role" : "read",
"db" : "assets"
}
],
"customData" : {
"employeeId" : "0x3039"
}
}
Получить данные о ресторанах здесь
Поведение
db.updateUser () отправляет пароль к экземпляру MongoDB без шифрования.
Требуемый доступ
У вас должен быть доступ, включающий действие revokeRole во всех базах данных, чтобы обновить массив ролей пользователя.
У вас должно быть действие grantRole для базы данных роли, чтобы добавить роль пользователю.
Чтобы изменить поле pwd или customData другого пользователя, необходимо иметь действия changeAnyPassword и changeAnyCustomData соответственно в базе данных этого пользователя.
Чтобы изменить свой собственный пароль и пользовательские данные, вы должны иметь привилегии, которые предоставляют действия changeOwnPassword и changeOwnCustomData соответственно в базе данных пользователя.
Предыдущая: метод db.createUser ()
Далее: метод db.changeUserPassword ()
Новый контент: Composer: менеджер зависимостей для PHP , R программирования