<?php//定义连接参数
$host      = 'localhost';
$user      = 'root';
$passwd    = 'root';
$database  = 'target';
$newUser   = 'test';//创建数据库的sql语句
$createSql = 'crate database ' . $database;//创建授予test用户在$host主机上$datbase数据库的select、insert权限
$grantSql  = 'grant select, insert on ' . $database . ' to ' . $newUser . '@' . $host;//连接数据库
$conn      = mysql_connect( $host, $user, $passwd );
mysql_select_db( 'mysql' );//执行创建数据库的sql
mysql_query( $creatrSql );//执行授予权限的sql
mysql_query( $grantSql );//关闭数据库连接
mysql_close( $conn );?>

解决方案 »

  1.   

    麻烦再帮我看看,用了下面的代码,运行时显示如下错误,不知道怎么改正GRANT SELECT ON hb TO webuser@localhost IDENTIFIED BY '12345'
    无法设置权限
    错误代码: 1146
    错误原因: Table 'mysql.hb' doesn't exist
    <?php
     //显示数据库错误信息
      function fatal_mysql_msg($msg){
        echo $msg."<BR>";
        echo "错误代码: ".mysql_errno()."<BR>";
        echo "错误原因: ".mysql_error()."<BR>";
        exit;
        }  //定义连接参数
      $host        ="localhost";
      $root_user   ="root";
      $root_passwd ="";
      $database    ="hb";
      $user        ="webuser";
      $passwd      ="12345";  //连接数据库
      $connect=@mysql_connect($host,$root_user,$root_passwd)
        or fatal_mysql_msg("无法连接到MySQL数据库服务器");
      //选择管理的数据库
      @mysql_select_db("mysql") or fatal_mysql_msg("无法选择数据库:mysql");
      //选择数据库
      $ok=0;
      //检查数据库是否已存在
      $dbs=mysql_list_dbs($connect);
      $rows=mysql_num_rows($dbs);
      for($i=0;$i<$rows;$i++){
        $db_name[$i]=mysql_tablename($dbs,$i);
        if($database==$db_name[$i]){$ok=1;break;};  //数据库存在
        };
      //如果数据库不存在,则创建
      if($ok==0)@mysql_query("CREATE DATABASE ".$database) or fatal_mysql_msg("无法创建数据库");  //配置权限
      $sql="GRANT SELECT ON ".$database." TO ".$user.'@'.$host." IDENTIFIED BY '".$passwd."'";
      echo "$sql<br>";
      @mysql_query($sql) or fatal_mysql_msg("无法设置权限");  mysql_close($connect);
    ?>
      

  2.   

    建议好好看看phpMyadmin的代码,最经典的例子!