Size: a a a

2020 April 29

DS

Dmitry Sergeev in MongoDB Russian
yopp
use admin;
db.createUser({ user: "root", pwd: "pass", roles: [{role: "root", db: "local"}]})
Еще раз:

> use admin
switched to db admin
> db.createUser({ user: "test_local", pwd: "test", roles: [{role: "root", db: "local"}]})
2020-04-29T15:04:49.969+0200 E QUERY    [thread1] Error: couldn't add user: No role named root@local :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1437:15
@(shell):1:1
>


у базы local, нету роли "root"
источник

y

yopp in MongoDB Russian
MongoDB provides all other built-in roles only on the admin database.

Значит вам необходимо вместо роли указать привилегию
источник

y

yopp in MongoDB Russian
источник

DS

Dmitry Sergeev in MongoDB Russian
yopp
MongoDB provides all other built-in roles only on the admin database.

Значит вам необходимо вместо роли указать привилегию
нельзя указывать вместо роли привелегию.

Можно создать роль с нужными тебе привелегеиями, но создавать роль в local нельзя
источник

y

yopp in MongoDB Russian
у меня сейчас нет монги под рукой, значит вам не в local надо создать роль, а в admin, с resouce scope на local
источник

DS

Dmitry Sergeev in MongoDB Russian
yopp
MongoDB provides all other built-in roles only on the admin database.

Значит вам необходимо вместо роли указать привилегию
Создать роль в local нельзя

> use local
switched to db local
> db.createRole({role:"custom",privileges: [ {resource: {db:"local",collection:"system.replset"}, actions: ["remove"] }], roles: []})
2020-04-29T15:08:36.079+0200 E QUERY    [thread1] Error: Cannot create roles in the local database :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createRole@src/mongo/shell/db.js:1702:1
@(shell):1:1


Нет смысла создавать ее в admin

>
use admin
switched to db admin
> db.createRole({role:"custom",privileges: [ {resource: {db:"local",collection:"system.replset"}, actions: ["remove"] }], roles: []})
{
"role" : "custom",
"privileges" : [
 {
  "resource" : {
   "db" : "local",
   "collection" : "system.replset"
  },
  "actions" : [
   "remove"
  ]
 }
],
"roles" : [ ]
}


Так как все равно нельзя на нее сослаться, делая юзера для базы local

> db.createUser({ user: "test_local", pwd: "test", roles: [{role: "custom", db: "local"}]})
2020-04-29T15:10:03.095+0200 E QUERY    [thread1] Error: couldn't add user: No role named custom@local :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1437:15
@(shell):1:1
источник

y

yopp in MongoDB Russian
возможно прокатит сделать роль local_root где указать roles: [ root, db: local ]
источник

DS

Dmitry Sergeev in MongoDB Russian
yopp
у меня сейчас нет монги под рукой, значит вам не в local надо создать роль, а в admin, с resouce scope на local
Выше пример привел, так тоже нельзя
источник

y

yopp in MongoDB Russian
> use local
switched to db local
источник

y

yopp in MongoDB Russian
забудьте вы вообще про это
источник

y

yopp in MongoDB Russian
у вас все действия должны быть в admin
источник

y

yopp in MongoDB Russian
это дебильная система в монге
источник

DS

Dmitry Sergeev in MongoDB Russian
yopp
> use local
switched to db local
прочитай внимательней. Я для примера попробовал создать роли как и в local, так и в admin
А потом попробовал в базе admin создать пользователя с этой ролью для доступа к базе local
источник

DS

Dmitry Sergeev in MongoDB Russian
И оба варианта НЕ работают
источник

y

yopp in MongoDB Russian
первый и не должен работать
источник

y

yopp in MongoDB Russian
со вторым интересно
источник

y

yopp in MongoDB Russian
какая версия?
источник

y

yopp in MongoDB Russian
попробуйте сделать anyAction, anyResource и дать это руту
источник

DS

Dmitry Sergeev in MongoDB Russian
yopp
у вас все действия должны быть в admin
во первых, насчет этого будем дискутировать позже, так как ты не прав. А во вторых внимательней прочитайте. Я создал роль в базе admin, но для примера и дебага попробоввал и в базе local
источник

y

yopp in MongoDB Russian
давайте вы хамить не будете
источник