2016-10-05 2 views
0

J'ai besoin de créer un utilisateur dans MongoDB avec le rôle "root" mais seulement pour quelques bases de données sélectionnées (database_one et database_two). Une mes questions sont les suivantes:MongoDB définir l'utilisateur comme administrateur des bases de données sélectionnées

  1. Dans la base de données qui dois-je créer l'utilisateur?
  2. Ai-je besoin de créer des rôles personnalisés? Avec quels paramètres?
  3. Quels rôles dois-je accorder à l'utilisateur?

Mon plan était que je crée l'utilisateur dans DB admin, définir les rôles dbadmin, UserAdmin, readWrite avec les deux bases de données (database_one et database_two). Mais dans ce cas, je ne suis pas en mesure de se connecter en tant que cet utilisateur. Pouvez-vous m'aider à configurer l'utilisateur et ses rôles?

Répondre

0

En supposant que vous avez choisi une base de données courante (en utilisant cette commande use <databaseName>) avec laquelle vous travaillez déjà, vous pouvez essayer le code ci-dessous pour ajouter un utilisateur et spécifier ses informations d'identification et ses rôles.

db.addUser({user: "root", pwd: "123456", roles: [ "userAdminAnyDatabase", "readWriteAnyDatabase", "dbAdminAnyDatabase", "clusterAdmin" ]})); 

ou pour créer un utilisateur admin pour une seule base de données:

use <databaseName> 
db.createUser(
    { 
    user: "recordsUserAdmin", 
    pwd: "password", 
    roles: [ { role: "userAdmin", db: "records" } ] 
    } 
) 

Plus de here

+0

Quand j'utiliser votre exemple # 1, créé par l'utilisateur a accès à toutes les bases de données. Mais l'utilisateur doit avoir accès uniquement à 2 bases de données spécifiées. Et quand j'utilise votre deuxième exemple, je dois créer le même utilisateur deux fois dans les deux bases de données. Mais cette solution n'est pas efficace pour moi, car chaque fois que je veux changer le mot de passe de l'utilisateur, je dois les changer dans les deux DB. – petr