Le contenu de cet article est une introduction aux utilisateurs et aux autorisations dans mongoDB. Il a une bonne valeur de référence et j'espère qu'il pourra aider les amis dans le besoin.
Pour les bases de données, les utilisateurs et les autorisations sont un élément très important, car ils impliquent la sécurité. Alors, quels sont les utilisateurs et les autorisations de mongoDB ?
La version de mongoDB utilisée dans cet article est la 3.6 et le système d'exploitation est Windows.
En raison du manque d'espace, cet article ne présentera pas le processus du téléchargement à l'installation de la base de données. Concernant les tutoriels d'installation, il existe de nombreux tutoriels sur Internet que vous pouvez suivre. ces tutoriels pour l’installer et l’exécuter. Cet article se concentrera sur la partie 用户和权限
de mongoDB.
Pour mongoDB, il est divisé en serveur et client.
Dans le répertoire d'installation de l'environnement Windows, double-cliquez pour ouvrir mongod.exe pour démarrer le service mongoDB.
Lorsque le service est démarré, vous pouvez double-cliquer sur mongo.exe pour ouvrir le client et vous connecter au service mongoDB.
Après l'installation de mongoDB, si vous utilisez directement mongod.exe pour démarrer le service, 默认是没有开启授权模式的
, si votre mongoDB n'active pas le mode d'autorisation, alors personne n'a besoin d'un nom d'utilisateur et mot de passe Vous pouvez également vous connecter au serveur mongoDB et faire ce que vous voulez avec votre base de données, même directement 删库跑路
. Par conséquent, dans un environnement de production, n'oubliez pas d'activer le mode d'autorisation.
Alors, comment activer le mode autorisation ?
Ouvrez cmd, entrez dans le répertoire bin du répertoire d'installation et exécutez la commande suivante :
mongod --auth --port 27017 --dbpath /data/db
Après avoir activé le mode d'autorisation, ouvrez mongo.exe et exécutez show dbs
sous l'administrateur base de données. Ceci, la base de données signalera une erreur, vous rappelant qu'il n'y a pas d'autorisation. Comme suit :
La base de données mongoDB est grossièrement divisée en deux types d'utilisateurs, l'un est l'utilisateur administrateur, le l'autre est un utilisateur ordinaire.
Nous créons un utilisateur administrateur (rôle userAdmin ou userAdminAnyDatabase) dans la base de données admin. L'utilisateur administrateur peut gérer les utilisateurs ordinaires.
Tout d'abord, démarrez le service mongoDB avec 非授权模式
.
mongod --port 27017 --dbpath /data/db
Entrez ensuite dans la base de données admin et exécutez la commande suivante :
use admin db.createUser( { user: "larry", pwd: "123456", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
Lorsqu'il vous demande Utilisateur ajouté avec succès, cela prouve que l'utilisateur administrateur a été ajouté avec succès.
Lorsque l'utilisateur administrateur est créé avec succès, nous pouvons utiliser cet utilisateur administrateur pour créer un utilisateur normal pour chaque base de données.
Tout d’abord, fermez toutes les fenêtres du shell mongo ci-dessus.
Utilisez ensuite 授权模式
pour démarrer le service mongoDB.
mongod --auth --port 27017 --dbpath /data/db
Ouvrez le client mongo.exe, entrez dans la base de données admin et connectez-vous avec db.auth()
.
Le premier paramètre est le nom d'utilisateur administrateur Larry créé ci-dessus, et le deuxième paramètre est le mot de passe de l'utilisateur administrateur Larry.
Le résultat renvoie 1, indiquant que l'administrateur Larry s'est connecté avec succès.
Ensuite, utilisez cet administrateur pour créer un moddx utilisateur normal pour la base de données photo_app et spécifiez ses autorisations en tant que readWrite.
use photo_app db.createUser( { user: "moddx", pwd: "123456", roles: [{ role: "readWrite", db: "photo_app"}] } )
Tout d'abord, connectez-vous à la base de données d'administration en tant que 管理员账户
, puis exécutez la commande suivante :
db.system.users.find().pretty()
Afficher tous les comptes globaux, seuls les administrateurs peuvent les consulter et afficher les comptes dans la bibliothèque actuelle, utilisateurs ordinaires Les utilisateurs et les administrateurs peuvent le voir. La commande pour afficher le compte sous la bibliothèque actuelle est la suivante :
show users
Obligatoire Un compte administrateur avec les droits dropUser peut supprimer un utilisateur, vous devez donc vous connecter avec un compte administrateur pour effectuer l'opération.
La commande pour supprimer l'utilisateur ordinaire moddx est la suivante :
db.dropUser("moddx", {w: "majority", wtimeout: 5000})
Pour révoquer les autorisations d'un utilisateur, la commande est la suivante :
db.revokeRolesFromUser( "moddx", [ { role: "readWrite", db: "photo_app" } ] )
Remarque : la commande ci-dessus Bien que les autorisations de lecture et d'écriture de l'utilisateur moddx dans la base de données photo_app aient été révoquées, l'utilisateur n'a pas été supprimé et peut toujours se connecter.
La commande suivante donne à l'utilisateur moddx des autorisations de lecture et d'écriture dans photo_app, et en même temps, lui donne des autorisations de lecture dans la base de données demodb
use photo_app db.grantRolesToUser( "moddx", [ "readWrite" , { role: "read", db: "demodb" } ], { w: "majority" , wtimeout: 4000 } )
La commande suivante modifie le mot de passe de l'utilisateur moddx dans photo_app :
use photo_app db.changeUserPassword("moddx", "newpwd")
Concernant les utilisateurs et les autorisations, ce sont les commandes d'opération shell couramment utilisées . J'espère qu'il pourra être utilisé pour Vous utilisez mongoDB pour plus de commodité.
Recommandations associées :
MongoDB Journey (2) Opérations de base (MongoDB Javascript Shell)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!