Como você entra em um árbitro?
Como no MongoDB 3.4, os árbitros em um conjunto de réplicas não replicam nenhum dado (incluindo detalhes do usuário / função). A implicação disso é que você normalmente pode fazer login em um árbitro por meio da exceção localhost a menos que isso tenha sido especificamente desativado, configure enableLocalhostAuthBypass
para false
.
Há uma solicitação de recurso relevante que você pode aumentar / assistir: SERVIDOR-5479: o árbitro no conjunto de réplicas autenticadas deve permitir e exigir login / auth para operações somente de administrador .
E se o árbitro tivesse dados de usuários antes de serem adicionados ao conjunto de réplicas?
No seu caso específico, parece que o seu árbitro já tinha alguns dados de autenticação antes que o mongod
fosse configurado como um membro do conjunto de réplicas. Esta não é uma implantação esperada (ou suportada), portanto, para remover ou atualizar os dados de autenticação, você precisa iniciar o árbitro como um servidor autônomo.
Para remover qualquer informação do usuário:
- Pare o árbitro.
-
Inicie o árbitro em uma porta diferente sem as opções
--replSet
,--keyfile
ou--auth
para garantir que outros membros do conjunto de réplicas não possam se conectar ao árbitro enquanto você estiver fazendo alterações no modo independente.Por exemplo:
mongod --dbpath /path/to/data --port 28000 --fork
-
A autenticação deve estar desativada agora. Use o shell
mongo
para descartar o banco de dadosadmin
:mongo localhost:28000/admin --eval 'db.dropDatabase()'
-
Desligue o árbitro, por exemplo:
mongo localhost:28000/admin --eval 'db.shutdownServer()'
- Inicie o árbitro com sua configuração normal.
Você também pode alterar a senha (em vez de remover o banco de dados admin
), mas isso pode ser confuso, pois não é esperado que os árbitros tenham dados do usuário. O resultado da autenticação contra um árbitro é indefinido, e é improvável que a implementação futura do SERVER-5479 suporte dados pré-existentes em árbitros. Uma vez que as informações do usuário / função são replicadas para os árbitros, espera-se que os dados sejam consistentes.