поэтому, используя оболочку mongodb, я смог создать базу данных и добавить к ней имя пользователя и пароль. Как я могу сделать то же самое в php? У меня все установлено и можно подключиться к серверу mongodb.
Однако я не могу найти какую-либо информацию по адресу http://www.php.net/manual/en/mongo.tutorial.php
Я не верю, что addUser()
реализован в драйвере PHP.
Однако есть execute
которое должно позволить вам делать addUser()
же, как и из оболочки mongo:
http://us.php.net/manual/en/mongodb.execute.php
EDIT: после тестирования я не смог execute
чтобы сделать то, что вы хотели, но я обнаружил, что следующие работы:
<?php // open connection $mongo = new Mongo("mongodb://" . MONGO_USER . ":" . MONGO_PASS . "@" . MONGO_HOST, array("persist" => "abcd1234")); $db = $mongo->selectDB("admin"); // user info to add $username = "testUser"; $password = "testPassword"; // 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('user' => $username, 'pwd' => md5($username . ":mongo:" . $password), 'readOnly' => false)); ?>
Это добавляет нового пользователя в админ db на моем сервере – проверяется через оболочку mongo после выполнения PHP-скрипта.
Тем не менее, почему вы хотите добавить пользователя Mongo из PHP-скрипта?
Способ создания нового пользователя mongodb из PHP осуществляется через команду MongoDB :::
//info to add $db_name = 'db_name'; $db_user = 'new_user'; $db_pass = 'new_pass'; //autenticate with a user who can create other users $mongo = new MongoClient("mongodb://root:root@localhost/admin"); $db = $mongo->selectDB( $db_name ); //command to create a new user $command = array ( "createUser" => $db_user, "pwd" => $db_pass, "roles" => array ( array("role" => "readWrite", "db" => $db_name) ) ); //call MongoDB::command to create user in 'db_name' database $db->command( $command );
Протестировано с mongo 3.0 и PHP mongo driver 1.6