Estou tentando criar um usuário simples com permissão de direitos para acessar qualquer banco de dados e pode executar qualquer ação. Ao tentar executar o createUser
comando, recebi este erro:
db.createUser({ user: "mongoadmin" , pwd: "mongoadmin", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]})
2015-08-20T17:09:42.300+0000 E QUERY Error: couldn't add user: No role named userAdminAnyDatabase@new_vehicles_catalog
O problema acima só acontece quando eu ativo a configuração de autenticação e preciso dela.
Então, como faço para criar um usuário com permissão de administrador para qualquer banco de dados. Eu o quero porque configurei meus serviços mongo para usar conexão de autenticação. Se eu quiser executar um despejo dos meus dados, tenho que usar esses parâmetros de autenticação.
Por favor, ajuda?
Usando o mongo versão 3.0.5 .
o serviço está no Amazon Linux AMI 2015.03 (HVM), tipo de volume SSD - ami-1ecae776
fonte
Conforme
MongoDB BOL
Ativar autenticação Com o controle de acesso ativado, verifique se você tem um usuário com a função userAdmin ou userAdminAnyDatabase no banco de dados do administrador. Esse usuário pode administrar usuário e funções como: criar usuários, conceder ou revogar funções dos usuários e criar ou modificar funções alfandegárias.Você pode criar usuários antes ou depois de ativar o controle de acesso. Se você habilitar o controle de acesso antes de criar qualquer usuário, o MongoDB fornecerá uma exceção localhost que permite criar um administrador de usuários no banco de dados do administrador. Depois de criado, você deve se autenticar como administrador do usuário para criar usuários adicionais conforme necessário.
Procedimento
Aqui está o seguinte procedimento através do qual você pode
Enable Auth
. Primeiro, adicione um administrador de usuário a uma instância do MongoDB em execução sem controle de acesso e, em seguida, habilite o controle de acesso.Conecte-se à instância
Por exemplo, conecte um
mongo
shell à instância.Especifique opções adicionais da linha de comando, conforme apropriado, para conectar o
mongo
shell à sua implantação, como--host
.Crie o administrador do usuário
Por exemplo, aqui no banco de dados do administrador, adicione um usuário com a
userAdminAnyDatabase
função Por exemplo, o seguinte cria o usuáriomyUserAdmin
no banco de dados do administrador :Desconecte o
mongo
shell.Reinicie a instância do MongoDB com controle de acesso
mongod
Reinicie a instância com a opção de linha de comando --auth ou, se estiver usando um arquivo de configuração, a configuração security.authorization .Os clientes que se conectam a esta instância agora devem se autenticar como
MongoDB
usuário. Os clientes podem executar apenas ações conforme determinado pelas funções atribuídas.Conecte e autentique como administrador do usuário
Usando o
mongo
shell, você pode:Conecte-se à autenticação transmitindo credenciais do usuário ou
Conecte-se primeiro sem autenticação e, em seguida, emita o método db.auth () para autenticar.
Para autenticar durante a conexão Inicie um
mongo
shell com as-u <username>, -p <password>, and the --authenticationDatabase <database>
opções de linha de comando:Para autenticar após conectar
Conecte o
mongo
shell aomongod
:Alterne para o banco de dados de autenticação (neste caso, admin) e use o método db.auth (,) para autenticar:
fonte