この行を書くことからデータベースを隠すことができます
$cfg['Servers'][$i]['hide_db'] = 'information_schema';
config.inc.phpファイルpfphpmyadminにあります。
このデータベースのコンテンツには、次のようなURLからアクセスできます http://www.test.com/phpmyadmin/index.php?db=information_schema&token=3ba37ae1e41f6a10e4afc7c69b934bba
Information_schemaデータベースへの完全なアクセスを削除するにはどうすればよいですか?
パイプ区切り文字を使用して複数のDBを非表示にすることもできます
$cfg['Servers'][$i]['hide_db'] = 'information_schema|performance_schema|mysql';
Phpmyadminを外部ディレクトリにインストールしましたが、これらのメソッドは機能しませんでした。
Phpmyadminを開きます
Settings > Features > General > database > Hide databases
非表示にするデータベースを次のように入力します
information_schema|performance_schema|mysql
投稿したようなURLからユーザーがinformation_schemaにアクセスするのを制限したいが、hide_db
構成ディレクティブに満足できない場合は、phpmyadminのconfig.inc.phpファイルに次の行を追加できます。
if($_GET['db'] == 'information_schema')exit;
私はこのコメントを最も高い賛成の答えに書きますが、私はまだ十分な評判を持っていません。
複数のデータベースを指定する場合は、(ヘルプに記載されているように)正規表現ルールの下で動作することに注意してください。そのため、可能性は低いかもしれませんが、「information_schema | performance_schema | mysql」を入力すると、これらの文字列を含むDBも非表示になります。
代わりに、「^ information_schema | performance_schema | mysql $」を入力してください。正規表現では、^は文字列の始まりを示し、$は終わりを示します。
これは、部分的な文字列でデータベースを非表示にすることもできることを意味します。 MySQLユーザー権限によってデータベースアクセスを常に制御する必要がありますが、部分一致を使用してDBのグループを非表示にすることができます。たとえば、すべてのテストデータベースを表示したくない場合は、[非表示のデータベース]フィールドに「^ test_」を入力すると、test_で始まるすべてのデータベースが非表示になります。 EG test_123、test_456。