Maison >base de données >tutoriel mysql >Base de données NoSQL grand public - explication détaillée des paramètres d'autorisation MongoDB
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.
L'environnement de cet article est basé sur CentOS 7.3 64 bits et la version de MongoDB est la 3.2.4.
Sur le serveur, exécutez l'installation de yum avec les privilèges de super utilisateur, la commande est la suivante :
[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!
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.
[username@xxx]# find -name mongo /etc/sysconfig/mongod /usr/bin/mongod
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
[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
Démarrez le service mongo
[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
Connectez MongoDB
Alors jusqu'à présent, MongoDB a été installé et démarré, et peut se connecter en tant que client sur le serveur.
[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
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.
use admin switched to db admin db.createUser({user:"root", pwd: "123456", roles: ["root"]}) Successfully added user: { "user" : "root", "roles" : [ "root" ] }
Créez un utilisateur administrateur pour la bibliothèque d'administration et accordez des droits d'administrateur. <strong> </strong>
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" } ]}
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.
use biz switched to db biz db.createUser({user:"demo", pwd:"demo", roles:["readWrite", "dbAdmin"]}) Successfully added user: { "user" : "demo", "roles" : [ "readWrite", "dbAdmin" ] }
Authentifier l'utilisateur créé, cette étape est très importante . Une fois l'authentification terminée, quittez le shell.
db.auth('demo', 'demo') 1 # 1 - 表示认证成功,0 - 表示失败 exit bye
Modifiez le fichier de configuration /usr/local/mongodb/mongodb.conf, ajoutez le contenu suivant et enregistrez-le. auth=true
Tuer et redémarrer le service
// 查看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
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 :
[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
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" }
[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()
Autorisations définies avec succès !
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!