Ubuntu 16.04 LTS で MongoDB の認証を有効にする方法

MongoDB

まずはインストールしましょう。

認証ユーザの追加

db.addUser()はdeprecatedです。ダメです。db.createUser()を使いましょうroleとかdbとかは適切なものを。

> use admin
> db.createUser( { user: "username", pwd: "password", roles: [{ role: "userAdminAnyDatabase", db: "admin"}] } )   
Successfully added user: {
        "user" : "username",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}

設定ファイルを書き換える

/etc/mongodb.confauthがコメントアウトされていますので、コメントを外してtrueにしましょう。そうしたら再起動です。

auth = true

認証の設定が有効かどうかを確認する

認証しないでshow collectionsするとエラーが返ってくれば設定はうまくいってます。

$ mongo                                                                                   
MongoDB shell version: 2.6.10
connecting to: test
> use admin                                                                                            
switched to db admin
> show collections                                                                                     
2017-03-05T21:46:47.182+0900 error: {
        "$err" : "not authorized for query on admin.system.namespaces",
        "code" : 13
} at src/mongo/shell/query.js:131

認証してみる

では、認証してみて再度show collectionsしましょう。

> db.auth( "username", "password" )
1
> show collections;                                                                                    
system.indexes
system.users
system.version

無事認証できました。

Powered by はてなブログ