MongoJavaチュートリアルから
MongoDBは、データベースへのアクセスが名前とパスワードの認証によって制御されるセキュアモードで実行できます。このモードで実行する場合、クライアントアプリケーションは、操作を実行する前に名前とパスワードを提供する必要があります。 Javaドライバーでは、接続されたmongoオブジェクトを使用して次の操作を行うだけです:
boolean auth = db.authenticate(myUserName, myPassword);
名前とパスワードがデータベースに対して有効である場合、authはtrueになります。そうでなければ、それは偽になります。可能な場合は、MongoDBログで詳細を確認する必要があります。
ほとんどのユーザーは、信頼できる環境で認証なしでMongoDBを実行します。
認証とセキュリティの構成
認証は、各データベースのsystem.usersコレクションに保存されます。たとえば、データベースprojectxでは、projectx.system.usersにユーザー情報が含まれます。
最初に、dbサーバープロセス全体の管理者ユーザーを構成する必要があります。このユーザーは、特別な管理者データベースに保存されています。
admin.system.usersでユーザーが構成されていない場合、認証せずにローカルホストインターフェイスからデータベースにアクセスできます。したがって、データベースを実行しているサーバー(したがってローカルホスト上)から、データベースシェルを実行し、管理ユーザーを構成します。
$ ./mongo
> use admin
> db.addUser("theadmin", "anadminpassword")
これで、データベース管理者用に作成されたユーザーができました。 admin.system.usersにユーザーがいるため、以前に認証したことがない場合は、さらに操作を実行する必要があることに注意してください。
> db.auth("theadmin", "anadminpassword")
次のコマンドを使用して、データベースの既存のユーザーを表示できます。
> db.system.users.find()
次に、別のデータベースの「通常の」ユーザーを構成しましょう。
> use projectx
> db.addUser("joe", "passwordForJoe")
最後に、読み取り専用ユーザーを追加しましょう。 (1.3.2+でのみサポートされます)
> use projectx
> db.addUser("guest", "passwordForGuest", true)