Ho iniziato a utilizzare MongoDB con l'autenticazione. Come da documentazione ho utilizzato l'eccezione localhost per creare un utente admin con il ruolo unico di userAdminAnyDatabase . È andato tutto bene. Quando eseguo il client "mongo" e autorizzo l'amministratore database dopo utilizzo quel database ottengo il numero 1 indicando che l'autorizzazione è riuscita. Tuttavia, qualsiasi comando che provo a eseguire genera un errore "non autorizzato", anche cercando di mostrare le raccolte nel database di amministrazione per cui ho appena autorizzato.
Qualcuno può dirmi perché questo è e come posso risolverlo? Attualmente sono in esecuzione senza autenticazione finché non riesco a risolvere il problema.
Risposta accettata:
Il userAdminAnyDatabase
ruolo (e userAdmin
ruolo di cui è un'estensione) dà semplicemente all'utente il permesso di leggere e scrivere su system.users
raccolta per amministrare gli utenti di un database. Non consente all'utente di leggere o scrivere nelle raccolte effettive del database. Per questo, devi concedere il read
o readWrite
ruoli.
Vedi Ruoli privilegi utente in MongoDB e Aggiungi un utente a un database.