mysql创建对应数据库/用户的权限代码

通过清心醉

mysql创建对应数据库/用户的权限代码

一个数据库多个用户登陆,然后不同用户访问的数据库又不同,很多人都不知道如何操作,网上也有一堆的过时的教程,根本没办法满足需求,作者写了个方法,可以实现创建用户名=数据库名(长度16)的权限的划分方法:

使用该方法前请确保启用了PDO_MYSQL

方法中的5个参数分别为:

$host=主机地址;

$user=用户,一般都是root(必须要最高权限的用户才能创建);

$password=用户密码,即root的密码;

$table=需要创建的数据库名称同时也是对应的用户名,长度16

$userpassword=创建新的MYSQL的用户的密码参数

 

function mysql_user_shell($host,$user,$password,$table,$userpassword)
{
$pdo=new PDO (“mysql:host=$host;charset=utf8”,$user,$password); //生成配置连接
$table=substr($table, 0, 16);//table重新赋值,提取前16位置
if($pdo->query(“create database $table”))  //如果创建数据库成功
{
echo “数据库:”.$table.”创建成功”;
}
else
{
echo “数据库已经存在或未启动参数错误.”;
}
$pdo=new PDO(“mysql:host=$host;dbname=$table;charset=utf8″,$user,$password); //重新创建PDO的连接并且连接对应的数据库
$sql=”grant select,insert,update,delete,create,drop on $table.* to $table@localhost identified by ‘$userpassword'”;
$pdo->exec($sql); //执行用户的创建
$sql=”REVOKE ALL PRIVILEGES ON `$table`.* FROM ‘$table’@’localhost'”;
$pdo->exec($sql);
$sql=”GRANT ALL PRIVILEGES ON `$table`.* TO ‘$table’@’localhost’ WITH GRANT OPTION”;
$pdo->exec($sql);
}

关于作者

清心醉 administrator

发表评论

如果喜欢作者的文章,您可以打赏给作者:

TRC20(虚拟货币):


ERC20(虚拟货币):


Bitcoin(BTC):