Skip to content

Instantly share code, notes, and snippets.

@hrdmtr
Last active January 19, 2016 08:24
Show Gist options
  • Save hrdmtr/4386673 to your computer and use it in GitHub Desktop.
Save hrdmtr/4386673 to your computer and use it in GitHub Desktop.
MongoDBで認証機能

MongoDBで認証機能を有効にするには(まとめ中・・・)

公式ドキュメントの「認証」では次のように書かれている。

  • 認証はデフォルトでは無効になっている
  • データベース毎のアクセス制限を提供する。ユーザは読取専用アクセスとノーマルアクセスのどちらも持っている。ノーマルアクセスはユーザ追加も可能
  • 各データベースのsystem.usersコレクションに資格情報を保持している。authorizedユーザを取得するためには次のコマンドを使う。
    db.system.users.find()
  • adminデータベースはユニークで、adminデータベースにノーマルアクセスを持っているユーザは、すべてのデータベースに読み書きアクセスを持つ。一方adminデータベースに読取り専用アクセスを持つユーザは、すべてのデータベースに読取り専用アクセスを持つ。
  • あるデータベースにノーマルアクセスとして認証されていて、同じデータベースに読取り専用アクセスとして認証した場合、最初の認証は無効になり、現在の読取り専用アクセスの接続が有効となる。
  • 認証を設定する前に準備が必要(次のどちらかでよい)
    • auth付きでMongodインスタンスを起動する前に、1ユーザ以上、adminデータベースに登録しておく
    • ローカル接続でMongodインスタンスに接続し、adminにユーザを登録する

ローカルから

>usr admin
>db.addUser("user", "pass");
ここまででリモートからログイン可能。(192.168.200.18にMongoがあるとして)接続するには、
>bin\mongo 192.168.200.18/admin -u user -p pass

確認

bin\mongo 192.168.200.18
db.auth("user", "pass"); →->"1"が返却されればOK。
db.system.users.find(); -> ユーザ確認

結果

{ "_id" : ObjectId("50dd71d5aba1f1664da8b43a"), "user" : "user", "readOnly" : false, "pwd" : "bf578a33c97032f88eb6cf7629fcbb44" }

別のデータベースにも認証機能を付けたい場合は、

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment