Sì, fondamentalmente puoi connetterti senza autenticazione ma non puoi fare quasi nulla. puoi eseguire db.serverBuildInfo()
db.version()
db.adminCommand({ping:1})
db.adminCommand({whatsmyuri:1})
db.adminCommand({features:1})
per esempio, forse qualche altro comando.
Il che sembra un po' doloroso per me è che è in grado di correre:
for(var i=0;i++<20000;){db.adminCommand({forceerror:1})}
Che genera un po' di log.
Ho controllato le fonti e puoi vedere che questo comportamento è una specie di bug. I sorgenti dell'avvio della shell sono in:https://github.com/mongodb/mongo/blob/master/src/mongo/shell/dbshell.cpp
Fondamentalmente ci sono due tipi di test in esecuzione rispetto ai valori dei parametri forniti negli argomenti password e nome utente per mongoshell. L'avvio verifica quando hai fornito un parametro --password e non hai scritto una password dopo. E c'è un controllo quando non hai specificato di iniziare senza db e hai specificato un nome utente che è più lungo di 0 di quello che tenterà di autenticare (controlla la riga 1043)
if (!nodb && username.size())
.
Ma questo è tutto. Se non specifichi affatto le credenziali, sembra che si connetterà senza nemmeno provare ad autenticarsi. Immagino che nella fase di inizializzazione dovrebbe essere verificato se il processo in cui ci colleghiamo è in esecuzione con l'autenticazione e forzare l'autenticazione se necessario.