Dans ce blog, nous avons parlé de certains systèmes de base de données, parmi lesquels les plus populaires sont MariaDB et MySQL, car ce sont les systèmes généralement inclus dans Xampp ou Lampp. Cette fois, nous allons parler de un autre système qui est MongoDB.
MongoDB est un système de base de données NoSQL orienté document open source, Ceci est un système de gestion de base de données documentaire moderne conçu pour une persistance des données haute performance, haute disponibilité, ainsi que mise à l'échelle automatique, basée sur la technologie de la technique NoSQL.
Au lieu d'enregistrer les données dans des tables comme c'est le cas dans les bases de données relationnelles, MongoDB enregistre les structures de données dans un document, qui est une structure de données comprenant des paires de champs et de valeurs (les documents MongoDB sont comparables aux objets JSON).
Parce qu'il offre des performances élevées et d'excellentes caractéristiques d'évolutivité, il est utilisé pour créer des applications modernes qui nécessitent des bases de données puissantes, critiques et hautement disponibles.
Installation de MongoDB sur Ubuntu
Pour installer ce système de base de données sur notre système, Il suffit d'ouvrir un terminal et d'y exécuter la commande suivante:
sudo apt install mongodb
Installation terminée, Le service MongoDB démarrera automatiquement via systemd et le processus s'exécutera sur le port 27017. Vous pouvez vérifier son état à l'aide de la commande:
sudo systemctl status mongodb
Sinon, nous pouvons forcer le démarrage avec cette commande:
sudo systemctl start mongodb
Activation des connexions à distance à MongoDB
Le système de base de données MongoDB utilise par défaut le port 27017 que nous devons ouvrir Afin d'accepter les connexions à distance, nous ne l'activons qu'avec la commande suivante.
sudo ufw allow 27017
Par défaut, le port 27017 n'est accessible qu'à partir de l'adresse locale 127.0.0.1. Pour autoriser les connexions à distance à MongoDB, il est nécessaire d'ajouter l'adresse IP du serveur dans le fichier /etc/mongodb.conf
Modifiez-le simplement avec:
sudo nano
Et nous pouvons voir quelque chose de similaire à ceci:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Que nous éditons avec les données de notre serveur.
Permettant d'accéder à MongoDB de partout, il donne un accès illimité aux données de la base de données. Par conséquent, il est préférable de donner accès à l'adresse IP par défaut spécifique à l'emplacement du port MongoDB.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Une fois cela fait, il suffit de redémarrer le service pour que les nouvelles modifications soient chargées au début, on fait cela avec:
sudo systemctl restart mongodb
Créer un utilisateur dans MongoDB avec mot de passe
Par défaut, la base de données a un accès assez simple, donc pour renforcer cela, nous pouvons créer un utilisateur avec un mot de passe.
MongoDB utilise le mécanisme d'authentification SCRAM par défaut. L'utilisation de SCRAM sur le système vérifie les informations d'identification utilisateur fournies par rapport au nom d'utilisateur, au mot de passe et à la base de données d'authentification.
Démarrez simplement la console de base de données avec la commande suivante:
Mongo
Nous pouvons faire une liste des bases de données existantes avec:
show dbs
Nous pouvons créer un utilisateur qui nous permettra de gérer les utilisateurs et les fonctions comme la création d'utilisateurs, l'octroi ou la révocation de rôles d'utilisateur et la création ou la modification de rôles douaniers.
Tapez simplement
use admin
Et nous créons l'utilisateur avec la commande suivante, où nous remplaçons le nom de l'utilisateur "root" et le mot de passe "password", par les accès crecenciales que nous jugeons appropriés.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Une fois cela fait, nous devons activer la méthode d'authentification pour cela, nous allons éditer le fichier suivant:
sudo nano /lib/systemd/system/mongodb.service
Et nous allons chercher la prochaine ligne:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Et l' éditez pour que ce soit comme suit:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
maintenant on redémarre simplement dans la base de données
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Nous testons la méthode d'authentification avec:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Aidez-moi avec cette ERREUR.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Erreur: échec de listDatabases: {
«Ok»: 0,
"Errmsg": "non autorisé par l'administrateur à exécuter la commande {listDatabases: 1.0, $ db: \" admin \ "}",
"Code": 13,
"CodeName": "Non autorisé"
}:
_getErrorWithCode@src/mongo/shell/utils.js: 25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js: 65: 1
shellHelper.show@src/mongo/shell/utils.js: 816: 19
shellHelper@src/mongo/shell/utils.js: 706: 15
@ (shellhelp2): 1: 1