示例#1
0
文件: PostgreSQL.php 项目: totten/amp
 /**
  * Create a database and grant access to a (new) user
  *
  * @param Datasource $datasource
  * @param string $perm is not used
  */
 public function createDatabase(Datasource $datasource, $perm = DatabaseManagementInterface::PERM_ADMIN)
 {
     $db = $datasource->getDatabase();
     $user = $datasource->getUsername();
     $pass = $datasource->getPassword();
     $dbh = $this->adminDatasource->createPDO();
     $dbh->exec("DROP DATABASE IF EXISTS  \"{$db}\"");
     $dbh->exec("DROP ROLE IF EXISTS  {$user}");
     $dbh->exec("CREATE ROLE {$user} with encrypted password '{$pass}' login");
     $dbh->exec("CREATE DATABASE \"{$db}\" owner {$user}");
 }
示例#2
0
文件: MySQL.php 项目: totten/amp
 /**
  * Create a database and grant access to a (new) user
  *
  * @param Datasource $datasource
  * @param string $perm PERM_SUPER, PERM_ADMIN
  */
 public function createDatabase(Datasource $datasource, $perm = DatabaseManagementInterface::PERM_ADMIN)
 {
     $db = $datasource->getDatabase();
     $user = $datasource->getUsername();
     $pass = $datasource->getPassword();
     $dbh = $this->adminDatasource->createPDO();
     $dbh->exec("CREATE DATABASE `{$db}`");
     switch ($perm) {
         case DatabaseManagementInterface::PERM_SUPER:
             $dbh->exec("GRANT ALL ON *.* to '{$user}'@'localhost' IDENTIFIED BY '{$pass}' WITH GRANT OPTION");
             $dbh->exec("GRANT ALL ON *.* to '{$user}'@'%' IDENTIFIED BY '{$pass}' WITH GRANT OPTION");
             break;
         case DatabaseManagementInterface::PERM_ADMIN:
             $dbh->exec("GRANT ALL ON `{$db}`.* to '{$user}'@'localhost' IDENTIFIED BY '{$pass}'");
             $dbh->exec("GRANT ALL ON `{$db}`.* to '{$user}'@'%' IDENTIFIED BY '{$pass}'");
             break;
         default:
             throw new \Exception("Unrecognized permission level");
     }
 }
示例#3
0
 protected function createConfigFile($file, Datasource $datasource, $dataDir)
 {
     $config = array('dsn' => $datasource->toPDODSN(), 'user' => $datasource->getUsername(), 'pass' => $datasource->getPassword(), 'dataDir' => $dataDir);
     $this->fs->dumpFile($file, "<?php\nreturn " . var_export($config, 1) . ";");
 }