MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Quais privilégios de usuário do MongoDB eu preciso para adicionar um usuário a um novo/outro banco de dados mongo?


O erro cometido foi que eu estava usando um userAdminAnyDatabase usuário que NÃO no administrador banco de dados (veja esta nota). Portanto, DEVE ser um banco de dados chamado admin no seu servidor! Como a documentação diz para os privilégios "AnyDatabase":

Se você adicionar qualquer uma dessas funções a um documento de privilégio de usuário fora do banco de dados do administrador, o privilégio não terá efeito.

Então você deve:

  • adicione um userAdminAnyDatabase para o admin banco de dados
    $ mongo admin
    > db.createUser({ user: "myadmin", pwd: "1234", roles: ["userAdminAnyDatabase"] })
    

  • ativar a autenticação
    auth = true
    setParameter = enableLocalhostAuthBypass=0
    

  • conecte-se usando o novo myadmin user para qualquer banco de dados desejado e adicione outros usuários:
    $ mongo another -u myadmin -p 1234
    > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })
    

    ou
    > use another
    > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })