ホームページ >データベース >mysql チュートリアル >メインストリーム NoSQL データベース -- MongoDB 権限設定の詳細な説明
この記事の対象者:
MongoDBの権限設定に詳しくない人
MongoDB開発者
その他MongoDBに興味のある開発者
テクノロジーに興味のある人
ゴーDB分散ファイルストレージをベースとしたデータベースであり、現在主流のNoSQLデータベースであり、多くの高性能大規模システムに適用されています。これまで MongoDB に接したことがない場合は、MongoDB の公式 Web サイトにアクセスして、その主な機能とアプリケーションのシナリオを簡単に学ぶことができます。ただし、英語のレベルが非常に限られている場合は、MongoDB Baidu 百科事典を読んで詳細を学ぶことができます。遅かれ早かれ英語の技術情報を読む必要があるため、個人的には英語の情報を直接読むことをお勧めします。
この記事の例の環境はCentOS 7.3 64ビットに基づいており、MongoDBのバージョンは3.2.4です。
サーバー上で、スーパーユーザー権限でyumインストールを実行します。コマンドは次のとおりです:
[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!
MongoDBのインストールディレクトリを見つけます
上記の結果からわかるように、mongoは/usr/bin にインストールされている場合は、そのディレクトリに入ります。
[username@xxx]# find -name mongo /etc/sysconfig/mongod /usr/bin/mongod
構成mongodb.confを追加します。構成ファイル、データ、ログ ファイルをディレクトリ /usr/local/mongodb に配置し、/usr/local/mongodb ディレクトリにデータ ディレクトリと日付ディレクトリを作成します: data と 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
mongo を起動しますservice
[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
MongoDB の接続
これで、MongoDB がインストールおよび起動され、サーバー上でクライアントとして接続できるようになりました。
[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
rootユーザーを作成し、スーパー管理者権限(root)を付与します。スーパー管理者は、MongoDBのすべてのライブラリと権限、バックアップおよびクラスタ操作を管理できます。 以下のコード ブロック領域では、太字の部分が MongoDB シェル コマンドであり、斜体の部分がシェル コマンドの実行後の結果であることに注意してください。
use admin switched to db admin db.createUser({user:"root", pwd: "123456", roles: ["root"]}) Successfully added user: { "user" : "root", "roles" : [ "root" ] }
管理ライブラリの管理ユーザーを作成し、管理者権限を付与します。 <strong> </strong>
<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" } ]}
新建一个库biz,给该库添加一个用户demo,密码demo,并赋予读写及管理员权限。
use biz switched to db biz db.createUser({user:"demo", pwd:"demo", roles:["readWrite", "dbAdmin"]}) Successfully added user: { "user" : "demo", "roles" : [ "readWrite", "dbAdmin" ] }
认证创建的用户,此步骤非常重要。认证完成之后,退出shell。
db.auth('demo', 'demo') 1 # 1 - 表示认证成功,0 - 表示失败 exit bye
修改配置文件/usr/local/mongodb/mongodb.conf,添加以下内容,然后保存。auth=true
杀死,并重启服务
// 查看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
尝试匿名连接biz数据库,连接之后,执行命令show collections
,将会提示验证失败信息not authorized for query on biz.system.namespaces
。相应命令如下:
[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
使用添加的用户与密码连接biz库,并执行show collections
,同时创建集合users,并插入一条测试数据,发现可以得到正确的结果。<br><em>{ "_id" : ObjectId("58f1e4aff754011ea2e23238"), "name" : "aa" }</em>
[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()
作成したユーザーを認証します。このステップは非常に重要です。認証が完了したら、シェルを終了します。
検証を有効にして、MongoDB サービスを再起動します。 設定ファイル/usr/local/mongodb/mongodb.confを変更し、以下の内容を追加して保存します。 🎜サービスを強制終了して再起動します🎜🎜🎜🎜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 サイトの他の関連記事を参照してください。