Heim  >  Artikel  >  Datenbank  >  Mainstream-NoSQL-Datenbank – detaillierte Erläuterung der MongoDB-Berechtigungseinstellungen

Mainstream-NoSQL-Datenbank – detaillierte Erläuterung der MongoDB-Berechtigungseinstellungen

零下一度
零下一度Original
2017-05-06 14:57:241443Durchsuche

Dieser Artikel richtet sich an:

  • Personen, die mit den MongoDB-Berechtigungseinstellungen nicht vertraut sind

  • MongoDB-Entwickler

  • Andere Entwickler, die sich für MongoDB interessieren

  • Personen, die sich für Technologie interessieren

MongoDB ist ein verteilter Dateispeicher, der auf der Datenbank basiert ist derzeit die Mainstream-NoSQL-Datenbank und wurde auf vielen Hochleistungs-Großsystemen angewendet. Wenn Sie noch nie mit MongoDB in Berührung gekommen sind, können Sie die offizielle Website von MongoDB besuchen, um sich schnell über die Hauptfunktionen und Anwendungsszenarien zu informieren. Wenn Ihr Englischniveau wirklich begrenzt ist, können Sie die MongoDB-Baidu-Enzyklopädie lesen, um mehr zu erfahren. Ich persönlich empfehle, die englischen Informationen direkt zu lesen, da Sie früher oder später technische Informationen lesen müssen.

MongoDB-Installation

Die Umgebung in diesem Artikel basiert auf CentOS 7.3 64-Bit und die MongoDB-Version ist 3.2.4.

  1. Führen Sie auf dem Server die YUM-Installation mit Superuser-Rechten aus. Der Befehl lautet wie folgt:

  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. Suchen Sie das Installationsverzeichnis von MongoDB

    Wie aus den obigen Ergebnissen ersichtlich ist, wird Mongo unter dem aktuellen /usr/bin installiert und geben Sie dieses Verzeichnis ein.

  4. [username@xxx]# find -name mongo
    /etc/sysconfig/mongod
    /usr/bin/mongod
  5. Konfiguration mongodb.conf hinzufügen. Platzieren Sie die Konfigurationsdateien, Daten und Protokolldateien im Verzeichnis /usr/local/mongodb und erstellen Sie die Daten- und Datumsverzeichnisse im Verzeichnis /usr/local/mongodb: Daten und Protokolle

  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. Mongo-Dienst starten

  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. MongoDB verbinden

    Also Bisher wurde MongoDB installiert und gestartet und kann sich als Client mit dem Server verbinden.

  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

MongoDB-Berechtigungseinstellungen

  1. Erstellen Sie einen Root-Benutzer und gewähren Sie Superadministratorrechte (Root). Der Superadministrator kann alle Bibliotheken und Berechtigungen sowie Sicherungs- und Clustervorgänge unter MongoDB verwalten. Beachten Sie, dass im Codeblockbereich unten der fett gedruckte Teil der MongoDB-Shell-Befehl und der kursiv gedruckte Teil das Ergebnis nach der Ausführung des Shell-Befehls ist.

  2. use admin
    switched to db admin
    db.createUser({user:"root", pwd: "123456", roles: ["root"]})
    Successfully added user: { "user" : "root", "roles" : [ "root" ] }
  3. Erstellen Sie einen Admin-Benutzer für die Admin-Bibliothek und gewähren Sie Administratorrechte.
    <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. Erstellen Sie ein neues Bibliotheksgeschäft, fügen Sie der Bibliothek eine Benutzerdemo und eine Passwortdemo hinzu und geben Sie ihr Lese- und Schreibrechte und Administratorberechtigungen.

  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. Authentifizieren Sie den erstellten Benutzer. Dieser Schritt ist sehr wichtig . Nachdem die Authentifizierung abgeschlossen ist, verlassen Sie die Shell.

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

Aktivieren Sie die Überprüfung und starten Sie den MongoDB-Dienst neu.

  1. Ändern Sie die Konfigurationsdatei /usr/local/mongodb/mongodb.conf, fügen Sie den folgenden Inhalt hinzu und speichern Sie ihn.
    auth=true

  2. Dienst beenden und neu starten

  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

Berechtigungen erfolgreich überprüfen Richten Sie

  1. ein und versuchen Sie, anonym eine Verbindung zur Geschäftsdatenbank herzustellen. Führen Sie nach dem Herstellen der Verbindung den Befehl show collections aus. Daraufhin wird eine Meldung über einen Überprüfungsfehler not authorized for query on biz.system.namespaces angezeigt. Der entsprechende Befehl lautet wie folgt:

  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. Verwenden Sie den hinzugefügten Benutzer und das Passwort, um eine Verbindung zur Biz-Bibliothek herzustellen, und führen Sie show collections aus Erstellen Sie die Benutzersammlung, fügen Sie Testdaten ein und stellen Sie fest, dass das richtige Ergebnis erzielt werden kann.
    <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. Berechtigungen erfolgreich festgelegt!

Zusammenfassung

Im MongoDB-Berechtigungseinstellungsprozess müssen Sie nach dem Hinzufügen eines Benutzers die entsprechende Benutzerüberprüfung durchführen, andernfalls werden die Berechtigungen des Benutzers ungültig und wirksam. Dieser Artikel behandelt nur einige einfache Berechtigungen. Weitere integrierte Berechtigungen finden Sie in der offiziellen Dokumentation. Sollten während des Konfigurationsprozesses Probleme auftreten, können Sie mir zur Diskussion und Kommunikation eine Nachricht hinterlassen.

[Verwandte Empfehlungen]

1. Kostenloses kostenloses MySQL-Online-Video-Tutorial

2. Neuestes MySQL-Handbuch-Tutorial

3. Dinge zum Datenbankdesign

Das obige ist der detaillierte Inhalt vonMainstream-NoSQL-Datenbank – detaillierte Erläuterung der MongoDB-Berechtigungseinstellungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn