ホームページ >データベース >mysql チュートリアル >メインストリーム NoSQL データベース -- MongoDB 権限設定の詳細な説明

メインストリーム NoSQL データベース -- MongoDB 権限設定の詳細な説明

零下一度
零下一度オリジナル
2017-05-06 14:57:241523ブラウズ

この記事の対象者:

  • MongoDBの権限設定に詳しくない人

  • MongoDB開発者

  • その他MongoDBに興味のある開発者

  • テクノロジーに興味のある人

ゴーDB分散ファイルストレージをベースとしたデータベースであり、現在主流のNoSQLデータベースであり、多くの高性能大規模システムに適用されています。これまで MongoDB に接したことがない場合は、MongoDB の公式 Web サイトにアクセスして、その主な機能とアプリケーションのシナリオを簡単に学ぶことができます。ただし、英語のレベルが非常に限られている場合は、MongoDB Baidu 百科事典を読んで詳細を学ぶことができます。遅かれ早かれ英語の技術情報を読む必要があるため、個人的には英語の情報を直接読むことをお勧めします。

MongoDBのインストール

この記事の例の環境はCentOS 7.3 64ビットに基づいており、MongoDBのバージョンは3.2.4です。

  1. サーバー上で、スーパーユーザー権限でyumインストールを実行します。コマンドは次のとおりです:

  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. MongoDBのインストールディレクトリを見つけます

    上記の結果からわかるように、mongoは/usr/bin にインストールされている場合は、そのディレクトリに入ります。

  4. [username@xxx]# find -name mongo
    /etc/sysconfig/mongod
    /usr/bin/mongod
  5. 構成mongodb.confを追加します。構成ファイル、データ、ログ ファイルをディレクトリ /usr/local/mongodb に配置し、/usr/local/mongodb ディレクトリにデータ ディレクトリと日付ディレクトリを作成します: data と 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. mongo を起動しますservice

  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 の接続

    これで、MongoDB がインストールおよび起動され、サーバー上でクライアントとして接続できるようになりました。

  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権限設定

  1. rootユーザーを作成し、スーパー管理者権限(root)を付与します。スーパー管理者は、MongoDBのすべてのライブラリと権限、バックアップおよびクラスタ操作を管理できます。 以下のコード ブロック領域では、太字の部分が MongoDB シェル コマンドであり、斜体の部分がシェル コマンドの実行後の結果であることに注意してください。

  2. use admin
    switched to db admin
    db.createUser({user:"root", pwd: "123456", roles: ["root"]})
    Successfully added user: { "user" : "root", "roles" : [ "root" ] }
  3. 管理ライブラリの管理ユーザーを作成し、管理者権限を付与します。
    <strong> </strong><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. 新建一个库biz,给该库添加一个用户demo,密码demo,并赋予读写及管理员权限。

  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. 认证创建的用户,此步骤非常重要。认证完成之后,退出shell。

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

开启验证,重启MongoDB服务。

  1. 修改配置文件/usr/local/mongodb/mongodb.conf,添加以下内容,然后保存。
    auth=true

  2. 杀死,并重启服务

  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

验证权限设置成功

  1. 尝试匿名连接biz数据库,连接之后,执行命令show collections,将会提示验证失败信息not authorized for query on biz.system.namespaces。相应命令如下:

  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. 使用添加的用户与密码连接biz库,并执行show collections,同时创建集合users,并插入一条测试数据,发现可以得到正确的结果。
    <br><em>{ "_id" : ObjectId("58f1e4aff754011ea2e23238"), "name" : "aa" }</em>

  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. 新しいライブラリ ビジネスを作成し、ユーザー デモとパスワード デモをライブラリに追加し、読み取り、書き込み、および管理者の権限を付与します。

rrreee

作成したユーザーを認証します。このステップは非常に重要です。認証が完了したら、シェルを終了します。

rrreee

検証を有効にして、MongoDB サービスを再起動します。

設定ファイル/usr/local/mongodb/mongodb.confを変更し、以下の内容を追加して保存します。

auth=true

🎜サービスを強制終了して再起動します🎜🎜🎜🎜rrreee🎜🎜🎜権限が正常に設定されていることを確認してください🎜🎜🎜🎜 接続後、biz データベースへの接続を試行します。 、コマンドshow collectionsを実行すると、検証失敗メッセージnotauthorized for query on biz.system.namespacesが表示されます。対応するコマンドは次のとおりです。 🎜🎜🎜🎜rrreee🎜🎜🎜 追加したユーザーとパスワードを使用して biz ライブラリに接続し、show collections を実行します。同時に、コレクション ユーザーを作成し、テストデータを挿入すると、正しい結果が得られることがわかります。 🎜🎜<em>{ "_id" : ObjectId("58f1e4aff754011ea2e23238"), "name" : "aa" }</em>🎜🎜🎜rrreee🎜🎜🎜権限が正常に設定されました。 🎜🎜🎜🎜概要🎜🎜 MongoDB 権限設定プロセスでは、ユーザーを追加した後、対応するユーザー検証を実行する必要があります。そうしないと、ユーザーの権限が無効になります。この記事では、いくつかの簡単な権限のみを取り上げます。その他の組み込みの権限については、公式ドキュメントを参照してください。構成プロセス中に問題が発生した場合は、ディスカッションやコミュニケーションのために私にメッセージを残してください。 🎜🎜【関連するおすすめ】🎜🎜1. 無料の mysql オンラインビデオチュートリアル🎜🎜🎜2. 🎜MySQL の最新マニュアルチュートリアル🎜🎜🎜3. データベース設計に関する事項🎜🎜

以上がメインストリーム NoSQL データベース -- MongoDB 権限設定の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。