簡體   English   中英

Mongodb PHP驅動程序:如何創建數據庫並向其中添加用戶?

[英]Mongodb PHP driver: how to create database and add user to it?

因此,使用mongodb shell,我能夠創建數據庫並向其中添加用戶名和密碼。 如何在php中做同樣的事情? 我已經安裝了所有東西,並且能夠連接到mongodb服務器。

但是,我在doc中找不到任何信息。

我不相信addUser()是在PHP驅動程序中實現的。

但是,有一個execute程序應該允許您addUser()在mongo shell中一樣執行addUser()

編輯:經過測試,我無法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));
?>

這會將新用戶添加到我服務器上的admin數據庫中-在執行PHP腳本后通過mongo shell檢查。

就是說-為什么您要從PHP腳本添加Mongo用戶?

從PHP創建新的mongodb用戶的方法是通過MongoDB :: command

//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驅動程序1.6測試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM