Comment créer un administrateur de base de données qui permettra de gérer sa base de données utilisateurs
Je suis en utilisant MongoDB ver2.6.2 et souhaitez créer un administrateur de base de données qui sera en mesure de gérer ses utilisateurs (ajouter et supprimer). J'ai deux bases de données - admin et des livres. L'utilisateur admin_books est censé être un dbOwner et être en mesure de créer et de supprimer des utilisateurs de base de données de livres:
/* creating admin db */
> use admin;
switched to db admin
> db.createUser( { "user" : "admin_root", "pwd": "pass", "roles" : ["root"] } )
Successfully added user: { "user" : "admin_root", "roles" : [ "root" ] }
/* creating books db */
> use books;
switched to db books
> db.createUser( { "user" : "admin_books", "pwd": "pass", "roles" : ["dbOwner"] } )
Successfully added user: { "user" : "admin_books", "roles" : [ "dbOwner" ] }
> db.createUser( { "user" : "logger", "pwd": "pass", "roles" : ["readWrite"] } )
Successfully added user: { "user" : "logger", "roles" : [ "readWrite" ] }
J'ai trouvé que tous les utilisateurs sont stockés dans l'admin db à partir de la version 2.6.
Lorsque j'essaie de requête db utilisateurs lors de la connexion aux livres en tant que base de admin_books j'obtiens l'erreur suivante:
> use books
switched to db books
> db.auth("admin_books", "pass")
1
> db.system.users.find()
error: { "$err" : "not authorized for query on books.system.users", "code" : 13 }
Est-il des rôles et des privilèges-je besoin d'ajouter à admin_books pour lui permettre de gérer les utilisateurs?
Ou quelle serait la bonne façon de le faire?
Je sais qu'il y avait un semblable question, mais la réponse suggère d'ajouter une "userAdminAnyDatabase le" privilège de l'utilisateur, même si l'administrateur doit gérer seul db.
- Stackoverflow est une communauté de programmeurs. Votre question, cependant, est une question pour les administrateurs de base de données. J'ai nommé cette question de la migration pour dba.stackexchange.com.
Vous devez vous connecter pour publier un commentaire.
La db.système.les utilisateurs de la collection n'est plus utilisé pour la gestion des utilisateurs - elle a été frappée dans la version 2.6 de MongoDB:
http://docs.mongodb.org/manual/reference/privilege-documents/
À partir de la version 2.6 de toutes les informations d'accès d'utilisateur est stocké dans l'admin.système.les utilisateurs de la collection:
De sorte que le moyen de tester si un utilisateur a le privilège d'ajouter d'autres utilisateurs n'est pas à interroger le système.les utilisateurs de la collection dans la base de données. Au lieu de cela, vous devez vous connecter en tant qu'utilisateur et d'exécuter l'une de l'utilisateur ou le rôle de la gestion des commandes:
Commandes De Gestion Des Utilisateurs
createUser Crée un nouvel utilisateur.
updateUser Mises à jour de données d'un utilisateur.
dropUser Supprime un utilisateur unique.
dropAllUsersFromDatabase Supprime tous les utilisateurs associés à un
la base de données.
grantRolesToUser Accorde un rôle et ses privilèges à un utilisateur.
revokeRolesFromUser Supprime un rôle d'un utilisateur.
usersInfo Renvoie des informations sur les utilisateurs spécifiés.
Rôle De Gestion Des Commandes
createRole Crée un rôle et précise ses privilèges.
updateRole Mises à jour de l'utilisateur, le rôle défini.
dropRole Supprime rôle défini par l'utilisateur.
dropAllRolesFromDatabase Supprime tous les rôles définis par l'utilisateur à partir d'un
la base de données.
grantPrivilegesToRole Attribue des privilèges à un utilisateur de rôle défini.
revokePrivilegesFromRole Supprime les privilèges nécessaires à partir d'un
défini par l'utilisateur rôle.
grantRolesToRole Précise les rôles à partir de laquelle un utilisateur rôle défini
hérite des privilèges.
revokeRolesFromRole Supprime spécifié hérité de rôles à partir d'un
défini par l'utilisateur rôle.
rolesInfo Renvoie des informations pour le rôle ou les rôles.
invalidateUserCache vide le cache en mémoire des informations de l'utilisateur,
y compris les informations d'identification et des rôles.
http://docs.mongodb.org/manual/reference/command/#user-management-commands
Ne sais pas si cela a été répondu straighforwardly assez, mais voici comment vous le faites:
Où nom d'utilisateur, MOT de passe et BASE de données sont remplis avec les champs de cultures.
http://docs.mongodb.org/manual/reference/method/db.createUser/