Mongodb: создал базу данных и добавил в нее пользователя, но не может аутентифицировать пользователя - PullRequest
0 голосов
/ 27 июня 2011

это php-код, который я использовал для добавления пользователя "someuser" в "someusersdatabase".

<?
// open connection

  $mongo = new Mongo("mongodb://admin:passwd@remotemongoserver: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));

Я могу аутентифицироваться как администратор, однако, когда я аутентифицируюсь как-то, журнал показывает:

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

но когда я перехожу к веб-представлению, оно отображает как someusersdatabase, так и someusersdatabase.system.users

Значит, пользователь не добавляется должным образом? при запуске php-кода не выдается никакой ошибки ...

1 Ответ

3 голосов
/ 27 июня 2011

Вы, вероятно, должны call addUser() вместо того, чтобы вставлять непосредственно в коллекцию, в случае, если происходит некоторая скрытая бухгалтерия и / или функция хеширования отличается. Кроме того, имя поля user, а не username.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...