【问题标题】:opening phpmyadmin with different user should not view all database but can only view its own用不同的用户打开 phpmyadmin 不应查看所有数据库,而只能查看自己的数据库
【发布时间】:2013-07-19 14:33:11
【问题描述】:

从 root 用户,我在该用户的一个数据库下添加了一个用户,但是当我使用该用户登录时,我可以查看所有数据库。一个用户如何只能查看分配给它的自己的数据库

【问题讨论】:

    标签: database phpmyadmin dedicated-server


    【解决方案1】:

    /phpmyadmin/config.inc.php 使用您喜欢的编辑器并填写 blowfish_secret 行。

    例如

    $cfg['blowfish_secret'] = 'UltraSecretPassphrase';
    

    通过 http:///phpmyadmin/ 访问并使用 MySQL root 用户名和密码登录。

    单击右侧窗格中的 SQL 选项卡,并在标有在服务器“localhost”上运行 SQL 查询/查询的文本框中粘贴以下 SQL 语句并将 pmapassword 更改为更安全的内容。然后单击“执行”按钮。

    CREATE USER 'pma'@'localhost' IDENTIFIED BY 'pmapassword';
    
     GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapassword';
    
    GRANT SELECT (Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv) ON mysql.user TO 'pma'@'localhost';
     GRANT SELECT ON mysql.db TO 'pma'@'localhost';
     GRANT SELECT ON mysql.host TO 'pma'@'localhost';
     GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv) ON mysql.tables_priv TO 'pma'@'localhost';
    
     GRANT SELECT (Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
     Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv) ON mysql.user TO 'pma'@'localhost';
    
     GRANT SELECT ON mysql.db TO 'pma'@'localhost';
    
      GRANT SELECT ON mysql.host TO 'pma'@'localhost';
    
       GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv) ON mysql.tables_priv TO 'pma'@'localhost';
    

    现在我们需要修改 phpMyAdmin 的配置以支持多个唯一用户。 再次使用您喜欢的编辑器编辑 /usr/share/phpmyadmin/config.inc.php 并完成以下更改。

    把这两行前面的//去掉,填写上面选择的密码

    $cfg['Servers'][$i]['controluser'] = 'pma';
    $cfg['Servers'][$i]['controlpass'] = 'pmapassword';
    

    在上面的行之后添加以下行

     $cfg['Servers'][$i]['hide_db'] = 'information_schema';
    

    在末尾添加以下行 ?>

     $cfg['AllowUserDropDatabase'] = true;
    

    将Server扩展行从mysql改为mysqli

     $cfg['Servers'][$i]['extension'] = 'mysqli';
    

    【讨论】:

      猜你喜欢
      • 2013-03-12
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多