代码之家  ›  专栏  ›  技术社区  ›  Ilya Birman

在尝试创建数据库之前检查用户权限

  •  2
  • Ilya Birman  · 技术社区  · 16 年前

    因为如果我没有足够的权限,我只想从UI中完全隐藏“创建数据库”按钮。

    我使用PHP和MySQL。谢谢

    3 回复  |  直到 16 年前
        1
  •  5
  •   vartec    16 年前

    您可以通过以下方式获得权限:

    SHOW GRANTS FOR CURRENT_USER;
    
        2
  •  3
  •   nickf    16 年前

    正如瓦特克所说, SHOW GRANTS FOR CURRENT_USER 这是一条路要走。我添加这个答案只是为了在您没有完全权限时显示该语句的输出:

    GRANT USAGE ON *.* TO 'myusername'@'%' IDENTIFIED BY PASSWORD '*8D4A4D198E31D6EA9D7997F7B29A2BCA254178B6'
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE ROUTINE ON `mydb1`.* TO 'myusername'@'%'
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE ROUTINE ON `mydb2`.* TO 'myusername'@'%'
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE ROUTINE ON `mydb3`.* TO 'myusername'@'%'
    
        3
  •  1
  •   Georg Schölly Crazy Developer    16 年前

    只需创建一个测试脚本

    <?php
    mysql_connect(...);
    $result = mysql_query('CREATE DATABASE testDB');
    if (!$result)
    {
        //Failed
    }
    else
    {
        mysql_query('DROP DATABASE testDB');
    }
    mysql_close();
    ?>
    

    您可以在IF中定义一个变量,然后将其写入配置文件。