2012-06-12 8 views
8

Abbiamo 9 nodi mongo nel nostro ambiente con:Mongos autenticazione

  • 1 Mongos
  • 3 server di configurazione (mongod --configSvr)
  • 9 server mongod (cocci o membri di sharded serie di repliche)

e stiamo cercando di implementare l'autenticazione su di essi.

ho fatto in passato con un unico server ed è stato davvero facile:

  1. basta aggiungere l'utente admin al database di amministrazione
  2. aggiungere un utente su ogni database

Ho dovuto riavviare mongod con l'opzione --auth, ma qui non sembra funzionare.

Ho aggiunto l'account di amministrazione ai nostri mongos e ai nostri database semplificati; Ho provato ad autenticarmi come l'utente che avevo appena creato, ma non ha funzionato.

Ho provato a creare un utente amministratore su ciascun database e gli altri account utente di cui abbiamo bisogno, ma non ha funzionato.

Ho anche provato a verificare che tutti i nostri server mongo funzionassero con l'opzione --keyFile specificata sulla riga di comando o nei loro file /etc/mongodb.conf, ma non sembrava essere di aiuto.

Quando provo ad autenticare come un determinato utente, in questo modo:

db.auth("user","passwd") 

fallisce e restituisce 0, come in false; non non-zero.

Ho davvero bisogno di tutto l'aiuto che posso ottenere, quindi per favore lasciatemi qualche suggerimento su cose che potrei provare - non posso sovraccaricarlo, ogni aiuto è più che benvenuto dato che non sembra che stia ovunque basta seguire i documenti ufficiali sulla gestione/amministrazione dei cluster mongo sharded.

+0

come hai creato gli utenti? Si prega di inviare più codice! ** NOTA ** Le istanze di mongos non possono essere avviate con '--auth', i server di configurazione e i frammenti forniscono l'autenticazione/sicurezza. ** ANCHE ** Assicurati di eseguire 'db.auth (" user "," password ")' sullo stesso database in cui hai creato l'utente che stai cercando di autenticare come. –

+0

Sul mio posto di lavoro abbiamo provato a creare utenti dai mongos e per qualche motivo non ha funzionato in modo affidabile; quando li abbiamo creati direttamente su un server di configurazione ha funzionato bene. (abbiamo prima arrestato i nostri server mongos, abbiamo introdotto nuove configurazioni e poi creato l'utente direttamente su una configurazione e poi aggiunto alcuni server mongos) –

risposta

1

In un cluster più grande è necessario utilizzare --keyFile per consentire a tutti i membri del cluster di autenticarsi l'uno con l'altro. Quando si utilizza questa opzione, --auth è "assunto". Poiché ci sono state diverse modifiche alla versione da quando hai posto questa domanda, i ruoli assegnati agli utenti ora sono più granulari: dovresti avere un 'clusterAdmin', 'userAdmin', 'dbAdmin', ecc.

This page has more details come configurare la sicurezza in MongoDB per un cluster più compatto.

Problemi correlati