参考
https://docs.mongodb.com/manual/tutorial/enable-authentication/
など
mongodb 2.xの時は、簡単な設定しかなかったんだけど(後DB毎にユーザー設定するとか、ちょっと変だったw)
mongodb 3.xではコマンドが変更されて、一元管理的になってました。
・ユーザー登録例
まずは管理者権限のユーザー登録です。
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
mongodb 3.4ではデフォルトでユーザー認証が有効になっている模様(2.xの時はデフォルト無効)
ですので最初に管理者権限のユーザーを登録する必要があります。
2.xの時と違って、認証なくてもmongodbに入れるようになっているので、それから admin DBへ移動してユーザー登録します。
その後 admin で認証すれば管理者になれます。
認証例
use admin
db.auth("myUserAdmin", "abc123" )
・一般ユーザーの登録例
use test
db.createUser(
{
user: "myTester",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "test" },
{ role: "read", db: "reporting" } ]
}
)
mongodbへログインするには以下のようにもできます。
# mongo "mongodb://myTester: xyz123@localhost:27017/test"
・その他
ユーザー登録をアップデートするときは db.updateUser でやるらしい。
追加
さくらのVPSでcappedに3000件登録するテストをしたら
CentoOS6 mongodb 2.4 : 約13秒
CentoOS7 mongodb 3.4 : 約6秒
とパフォーマンスがアップされてました。
mongodb 3.4の方もほとんどチューニング等してないけど、WiredTigerのおかげかも?