2011-07-20 5 views
2

MongoDBコンソールで管理ユーザー(管理データベースのユーザー)としてログインすると、ログインする必要なく同じサーバー上のデータベースにフルアクセスできますそれらのそれぞれに。 しかし、公式のC#ドライバを使用して管理データベースに接続文字列を渡すと、他のデータベースにアクセスしようとすると認証エラーが発生します。 MongoServerInstance.AcquireConnection()では、接続を再認証しようとしているところで、管理データベースの資格を他のデータベースと照合してチェックします。Mongodb C#ドライバ - 他のデータベースへのアクセスに管理者認証を使用できません

私は何を達成しようとしていることである - 私は、コンソールは私が行うことができます

何をして正確に同じように、管理者の接続文字列を提供し、一人ひとりそれらのいずれかにログインすることなく、すべてのデータベースへのアクセスを取得しますC#ドライバをコンソールと同じように動作させるには、認証の点で違いますか?

答えて

4

MongoDBドライバの認証コードを調べた後、実際に管理者ログインであることをドライバに知らせるために、接続文字列にadmin usernameの後に '(admin)'を追加する必要があります。それをやった後、すべてが期待通りに機能します!

+0

バー、想像してください。あなたはそれを見つけた;)+1 –

+0

@Andrew - 深いソースコード。 1つは、それが文書化されているべきだと思います... – Andrey

+0

あなたは接続文字列の例を教えてください?これはadminAnyDatabaseユーザーを使用していましたか? –

関連する問題