Maison >base de données >tutoriel mysql >Base de données NoSQL grand public - explication détaillée des paramètres d'autorisation MongoDB

Base de données NoSQL grand public - explication détaillée des paramètres d'autorisation MongoDB

零下一度
零下一度original
2017-05-06 14:57:241521parcourir

Cet article est destiné à :

  • Ceux qui ne sont pas familiers avec les paramètres d'autorisation de MongoDB

  • Développeurs MongoDB

  • Autres développeurs intéressés par MongoDB

  • Personnes intéressées par la technologie

MongoDB est un stockage de fichiers distribué basé sur la base de données est actuellement la base de données NoSQL principale et a été appliquée à de nombreux systèmes hautes performances à grande échelle. Si vous n'avez jamais été en contact avec MongoDB auparavant, vous pouvez visiter le site officiel de MongoDB pour en savoir plus sur ses principales fonctionnalités et ses scénarios d'application. Si votre niveau d'anglais est vraiment limité, vous pouvez lire l'encyclopédie MongoDB Baidu pour en savoir plus. Je recommande personnellement de lire directement les informations en anglais, car tôt ou tard, vous devrez lire les informations techniques en anglais.

Installation de MongoDB

L'environnement de cet article est basé sur CentOS 7.3 64 bits et la version de MongoDB est la 3.2.4.

  1. Sur le serveur, exécutez l'installation de yum avec les privilèges de super utilisateur, la commande est la suivante :

  2. [username@xxx]# su [username] -- username 为你登陆服务器的用户名
    [username@xxx]# yum -y install mongodb-server  mongodb
    如果安装成功,你会得到如下类似的结果:
    Installed:
    mongodb-server.x86_64 0:2.6.12-4.el7
    Complete!
  3. Trouvez le répertoire d'installation de MongoDB

    Comme le montrent les résultats ci-dessus, mongo est installé sous le /usr/bin actuel et entrez dans ce répertoire.

  4. [username@xxx]# find -name mongo
    /etc/sysconfig/mongod
    /usr/bin/mongod
  5. Ajouter la configuration mongodb.conf. Placez les fichiers de configuration, les données et les fichiers journaux dans le répertoire /usr/local/mongodb, et créez les répertoires de données et de dates dans le répertoire /usr/local/mongodb : data and logs

  6. [username@xxx]# cd /usr/local
    [username@xxx]# mkdir mongodb
    [username@xxx]# cd mongodb
    [username@xxx]# mkdir data
    [username@xxx]# mkdir logs
    [username@xxx]# vi mongodb.conf
    在打开的文件中添加以下内容,然后保存:
    dbpath = /usr/local/mongodb/data
    logpath = /usr/local/mongodb/logs/mongod.log
    port = 27017
    fork = true
    nohttpinterface = true
  7. Démarrez le service mongo

  8. [username@xxx]# /usr/bin/mongod --config /usr/local/mongodb/mongodb.conf
    about to fork child process, waiting until server is ready for connections.
    forked process: 9516
    child process started successfully, parent exiting
  9. Connectez MongoDB

    Alors jusqu'à présent, MongoDB a été installé et démarré, et peut se connecter en tant que client sur le serveur.

  10. [username@xxx]# mongo 127.0.0.1:27017
    MongoDB shell version: 2.6.12
    connecting to: 127.0.0.1:27017/test
    Welcome to the MongoDB shell.
    For interactive help, type "help".
    For more comprehensive documentation, see
    http://docs.mongodb.org/
    Questions? Try the support group        http://groups.google.com/group/mongodb-user

Paramètres d'autorisation MongoDB

  1. Créez un utilisateur root et accordez les privilèges de super administrateur (root), le le super administrateur peut gérer toutes les bibliothèques et autorisations, les opérations de sauvegarde et de cluster sous MongoDB. Notez que dans la zone de bloc de code ci-dessous, la partie en gras est la commande shell MongoDB et la partie en italique est le résultat après l'exécution de la commande shell.

  2. use admin
    switched to db admin
    db.createUser({user:"root", pwd: "123456", roles: ["root"]})
    Successfully added user: { "user" : "root", "roles" : [ "root" ] }
  3. Créez un utilisateur administrateur pour la bibliothèque d'administration et accordez des droits d'administrateur.
    <strong> </strong>

  4. use admin
    switched to db admin
    db.createUser({user:"admin", pwd:"admin", roles:
    [{role:"userAdminAnyDatabase", db:"admin"}]})
    Successfully added user: {
    "user" : "admin", "roles" : [
    {
    "role" : "userAdminAnyDatabase",
    "db" : "admin"
    }
    ]}
  5. Créez une nouvelle bibliothèque, ajoutez une démo d'utilisateur, une démo de mot de passe à la bibliothèque et donnez-lui la lecture, l'écriture et les autorisations d'administrateur.

  6. use biz
    switched to db biz
    db.createUser({user:"demo", pwd:"demo", roles:["readWrite", "dbAdmin"]})
    Successfully added user: { "user" : "demo", "roles" : [ "readWrite", "dbAdmin" ] }
  7. Authentifier l'utilisateur créé, cette étape est très importante . Une fois l'authentification terminée, quittez le shell.

  8. db.auth(&#39;demo&#39;, &#39;demo&#39;)
    1
     # 1 - 表示认证成功,0 - 表示失败
    exit
    bye

Activez la vérification et redémarrez le service MongoDB.

  1. Modifiez le fichier de configuration /usr/local/mongodb/mongodb.conf, ajoutez le contenu suivant et enregistrez-le.
    auth=true

  2. Tuer et redémarrer le service

  3. // 查看mongo进程信息
    [username@xxx]# ps -def|grep mongo
    root      9516     1  0 15:08 ?        00:00:30 /usr/bin/mongod --config mongodb.conf
    root      9759  9614  0 16:55 pts/0    00:00:00 grep --color=auto mongo
    // 杀死进程
    [username@xxx]# kill -4 9516
    // 启动MongoDB
    [username@xxx]# /usr/bin/mongod --config /usr/local/mongodb/mongodb.conf
    about to fork child process, waiting until server is ready for connections.
    forked process: 9783
    child process started successfully, parent exiting

Vérifier les autorisations avec succès configurez

  1. et essayez de vous connecter de manière anonyme à la base de données biz. Après la connexion, exécutez la commande show collections et un message d'échec de vérification not authorized for query on biz.system.namespaces s'affichera. La commande correspondante est la suivante :

  2. [username@xxx]# /usr/bin/mongo 127.0.0.1:27017/biz
    MongoDB shell version: 2.6.12
    connecting to: 127.0.0.1:27017/biz
    show collections
    2017-04-15T17:04:20.662+0800 error: { "$err" : "not authorized for query on biz.system.namespaces", "code" : 13 } at src/mongo/shell/query.js:131
  3. Utilisez l'utilisateur et le mot de passe ajoutés pour vous connecter à la bibliothèque biz, et exécutez show collections, et créez les utilisateurs de la collection en même temps, et insérez une donnée de test et constatez que le résultat correct peut être obtenu.
    <code><br><em>{ "_id" : ObjectId("58f1e4aff754011ea2e23238"), "name" : "aa" }</em>{ "_id" : ObjectId("58f1e4aff754011ea2e23238"), "name" : "aa" }

  4. [username@xxx]# /usr/bin/mongo 127.0.0.1:27017/biz -u demo -p demo
    MongoDB shell version: 2.6.12
    connecting to: 127.0.0.1:27017/biz
    show collections
    db.users.insert({name:"aa"})
    WriteResult({ "nInserted" : 1 })
    db.users.find()
  5. Autorisations définies avec succès !

Résumé

Dans le processus de définition des autorisations MongoDB, après avoir ajouté un utilisateur, vous devez effectuer la vérification de l'utilisateur correspondante, sinon les autorisations de l'utilisateur seront invalides et prendront effet. Cet article ne couvre que quelques autorisations simples. Pour plus d'autorisations intégrées, veuillez vous référer à la documentation officielle. Si vous rencontrez des problèmes pendant le processus de configuration, vous pouvez me laisser un message pour discussion et communication.

[Recommandations associées]

1. Gratuit Tutoriel vidéo en ligne MySQL gratuit

2. Dernier tutoriel manuel MySQL

3.

Choses sur la conception de bases de données

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn