给用户在特定前缀的表上分配权限

3

我可以为一个用户分配特定前缀的表的所有权限,例如“abc_”。

我知道可以使用通配符选择所有表,如下所示:

GRANT ALL ON dbname.* TO ...

基本上,我想要做的是:
GRANT ALL ON dbname.abc_* TO ...

这个不起作用,我在想是否有解决方案,也许可以使用LIKE?(我已经尝试过,但目前为止没有成功)。

2个回答

3
抱歉,只能一个接一个地执行它们(当然,也可以编程实现)。

谢谢chaos,看来我得求助于PHP了。 - Greg Annandale

1
$ php -f pcre_grant.php -- localhost root password database user1 abc_ ALL


pcre_grant.php will look like:

<?php

list($script, $db_host, $db_username, $db_password, $db_name, $regexp, $username, $perms) = $argv;

$link = mysql_connect($db_host, $db_username, $db_password);
mysql_select_db($db_name);


$result = mysql_query("SHOW TABLES");
while($row = mysql_fetch_row($result)){
    if(preg_match('/'.$regexp.'/',$row[0]))
        mysql_query("GRANT ".$perms." ON `".$db_name."`.`".$row[0]."` TO ".$username);
}

mysql_close($link);
?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接