MySQL:如何检查用户(自己)是否有权创建临时表

时间:2010-08-31 22:19:59

标签: php sql mysql

我必须使用什么查询来检查查询用户是否有权在数据库中创建临时表?

1 个答案:

答案 0 :(得分:3)

我不知道是否有一种优雅的方式可以通过查询执行此操作,但是“hackish”类型的方法是使用mysql_query()并查看是否获得了该结果表或错误。

function checkCreateTempPermission($table) {
     $res = mysql_query("CREATE `$table` "); // modify this to be your temporary table code.
     if ($res === false) {
         if (strstr(mysql_error(), "command denied to user")) {
              return false;
         }else {
              // some other error happened not sure how you want to handle it so left blank.
         }
     }else {
         return true;
     }
}

我根本没有测试过这个,或多或少是理论如何做到这一点。或者,您可以编写运行此SQL的脚本:

Show grants for myuser;

然后,如果他们可以访问该表,则循环执行该测试。这需要更多的工作,但至少不会出错。希望有助于您入门。