AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 62976
Accepted
Tony
Tony
Asked: 2014-04-11 19:30:51 +0800 CST2014-04-11 19:30:51 +0800 CST 2014-04-11 19:30:51 +0800 CST

Como posso entrar no Mongo como superusuário ou redefinir usuários?

  • 772

Eu estava brincando com permissões e me tranquei do banco de dados do Mongo. Tenho certeza de que fiz isso tentando adicionar explicitamente acesso a um banco de dados, mas em vez disso, substituí apenas permitindo permissão ao banco de dados. Então, estou efetivamente bloqueado do meu banco de dados Mongo e tudo que leio me diz como criar um superusuário se eu tiver o privilégio de adicionar usuário. No momento, acho que não tenho nenhum usuário que tenha esse privilégio. Existe uma maneira de entrar no banco de dados como acesso total? Eu possuo o servidor e tenho acesso root.

mongodb
  • 6 6 respostas
  • 101386 Views

6 respostas

  • Voted
  1. Best Answer
    daveh
    2014-04-16T17:37:31+08:002014-04-16T17:37:31+08:00

    Se você se bloqueou, então você precisa fazer o seguinte:

    1. Pare sua instância do MongoDB
    2. Remova as opções --auth e/ou --keyfile da sua configuração do MongoDB para desabilitar a autenticação
    3. Inicie a instância sem autenticação
    4. Edite os usuários conforme necessário
    5. Reinicie a instância com a autenticação habilitada
    • 45
  2. Divya Krishnan
    2016-12-30T14:37:25+08:002016-12-30T14:37:25+08:00

    Eu tive um problema semelhante quando criei um usuário sem adicionar um superusuário primeiro. As etapas a seguir ajudaram a resolver o problema:

    1. Abra o arquivo de configuração do MongoDB usando sudo( sudo vi mongodb.conf).
      O arquivo pode ser encontrado na /etc/pasta.
    2. Comente "auth = true".
    3. Pare o serviço MongoDB ( sudo service mongod stop)
    4. Inicie o serviço MongoDB ( sudo service mongod start)
    5. Em seguida, crie o superusuário "root" usando o comando abaixo:

      use admin
      
      db.createUser({user:"admin",pwd:"password",roles:[{role:"root",db:"admin"}]});
      

      Para referência https://docs.mongodb.com/manual/reference/built-in-roles/#superuser-roles

    6. Volte e descomente "auth=true". Pare e inicie/reinicie o serviço mongodb.

    • 20
  3. Sybil
    2017-09-05T05:23:03+08:002017-09-05T05:23:03+08:00

    Se você usar um conjunto de réplicas com umkeyfile

    Segurança entre membros do conjunto de réplicas usando autenticação interna

    Keyfile é usado para autenticação na replicação.

    security:
      keyFile: <path-to-keyfile>
    replication:
      replSetName: <replicaSetName>
    

    Você pode usar este comando para fazer login como administrador no mongod:

    mongo -u __system -p "$(tr -d '\011-\015\040' < path-to-keyfile)" --authenticationDatabase local
    

    Depois disso, você pode criar ou modificar seu usuário administrador.

    Função interna

    __systemO MongoDB atribui essa função a objetos de usuário que representam membros do cluster, como membros do conjunto de réplicas e instâncias do mongos. A função autoriza seu titular a tomar qualquer ação contra qualquer objeto no banco de dados.

    Não atribua essa função a objetos de usuário que representam aplicativos ou administradores humanos, exceto em circunstâncias excepcionais.

    • 14
  4. Meligy
    2014-04-11T19:36:26+08:002014-04-11T19:36:26+08:00

    Confira as respostas para esta pergunta, elas podem ajudar

    https://stackoverflow.com/questions/20117104/mongodb-root-user

    Basicamente, se você ainda tiver acesso ao servidor, poderá acessar o Adminbanco de dados.

    Há mais nesta página http://docs.mongodb.org/v2.4/reference/user-privileges/

    Observe que a versão 2.6 muda completamente como isso funciona. Para 2.6, você precisará gastar mais tempo com http://docs.mongodb.org/manual/security/

    • 2
  5. Akaisteph7
    2022-09-14T08:46:09+08:002022-09-14T08:46:09+08:00

    A resposta do @Divya ajudou, mas não foi completa para mim. Aqui está o que eu tive que fazer:

    Passos

    1. Conecte-se à máquina que estava hospedando minha instância do MongoDB
    2. Abra o arquivo de configuração do MongoDB encontrado na /etc/pasta usando:sudo nano mongod.conf
    3. Comente o seguinte código assim:
      # security:
      #   authorization: enabled
      
    4. Pare o serviço MongoDB:sudo service mongod stop
    5. Inicie o serviço MongoDB:sudo service mongod start
    6. Conecte-se ao banco de dados usando Robo3T ou equivalente. Com uma conexão com a coleção admin , crie um novo superusuário admin:
      db.createUser({ user:"admin", pwd:"password", roles:[{role:"root", db:"admin"}] });
      
    7. Volte e descomente as linhas da etapa 3. Em seguida, repita as etapas 4 e 5.
    8. Agora você deve conseguir se autenticar com o novo usuário criado na etapa 6 e ter acesso total ao banco de dados.

    Solução de problemas

    • Se, por qualquer motivo, após tentar reiniciar o serviço mongo, você não conseguir se conectar a ele, verifique se o serviço foi iniciado corretamente com: systemctl --type=service --state=active. Se tiver iniciado, estará na lista como mongod.service.
    • Os logs do Mongo também podem ser encontrados em, /var/log/mongodb/mongodb.logmas é menos provável que sejam úteis nessa situação.
    • 0
  6. Tony
    2014-04-11T19:41:26+08:002014-04-11T19:41:26+08:00

    Você precisa parar o Mongo, remover os arquivos de administração e iniciar o Mongo

    sudo service mongod stop
    mv /data/admin.* .
    sudo service mongod start
    
    • -1

relate perguntas

  • Mongo Map-Reduce ou Sharding?

  • Configurando o Mongo com clustering

  • Diferença entre as chamadas find e findone do MongoDB

  • A fragmentação é eficaz para coleções pequenas?

  • Bons recursos para operar/administrar o MongoDB

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve