2011-06-27 14 views
0

これは「Someusersdatabase」に「someuser」というユーザーを追加するために使用したPHPコードです。Mongodb:データベースを作成してユーザーを追加しましたが、ユーザーを認証できません

Mon Jun 27 14:01:38 [initandlisten] connection accepted from client:62708 #1 
Mon Jun 27 14:01:38 [conn1] auth: couldn't find user someuser, someusersdatabase.system.users 

をしかし、私は、Webビューに移動するとき、それは両方のsomeusersdatabaseを表示し、

をsomeusersdatabase.system.users:

<? 
// open connection 

    $mongo = new Mongo("mongodb://admin:[email protected]:27017"); 
    $db = $mongo->selectDB("someusersdatabase"); 

$mongo->selectDB("someusersdatabase")->createCollection('__tmp_collection_'); 
$mongo->selectDB("someusersdatabase")->dropCollection('__tmp_collection_'); 

// $collections = $db->selectCollection("tmp"); 
// $collections->insert(array('t' => '1')); 

    // user info to add 
    $username = "someuser"; 
    $password = "apassword"; 

    // insert the user - note that the password gets hashed as 'username:mongo:password' 
    // set readOnly to true if user should not have insert/delete privs 
    $collection = $db->selectCollection("system.users"); 
    $collection->insert(array('username' => $username, 'pwd' => md5($username . ":mongo:" . $password), 'readOnly' => false)); 

私は、管理者として認証することができますしかし、私はsomeuserを認証したときにログが表示さ

ユーザーは正しく追加されていませんか? PHPコードが実行されているときにエラーがスローされていません...

+0

これは私の前の質問 – KJW

+0

のSOの別のユーザーによって提供されたコードです関連:http://stackoverflow.com/questions/6482224/mongodb-php-driver-how-to-create-database-and-add- user-to-it – hakre

答えて

3

おそらくcall addUser()はコレクションに直接挿入するのではなく、いくつかのアンダーフード簿記が行われているか、またはハッシュ関数が異なる場合に役立ちます。それ以外では、フィールド名はuserであり、usernameではありません。

+2

'addUser'を呼び出す必要はありません(手動でもうまくいきます)が、ここでの問題は実際には' username'ではなく 'username'でなければならないフィールド名です。 – netcoder

+0

@netcoderはい!完璧に動作する – KJW

関連する問題