phpMyAdminで『information_schema』などを非表示にする方法
MySQLでは、初期状態で『information_schema』、『mysql』、『test』、『performance_schema』などが作成されます。
『information_schema』は情報スキーマと呼ばれ、データベースで定義された情報が格納されています。
情報スキーマは標準SQLで定義されているもので、PostgreSQLなど他のRDBMSと共通化するために存在します。
この『information_schema』は通常、一般のユーザーには閲覧などをすることがないものですが、
どのユーザーにもアクセスする権限があるのでphpMyAdminでもデータベースの一覧に表示がされます。
このデータベースを一覧に表示させたくない場合はconfig.inc.phpで『hide_db』を使います。
config.inc.php
$cfg['Servers'][$i]['hide_db'] = "(^information_schema$|^performance_schema$|^test$)";
『hide_db』が使用される場所は次のようになっています。
/libraries/List_Database.class.php 85行目
protected function _checkHideDatabase() { if (empty($GLOBALS['cfg']['Server']['hide_db'])) { return; } foreach ($this->getArrayCopy() as $key => $db) { if (preg_match('/' . $GLOBALS['cfg']['Server']['hide_db'] . '/', $db)) { $this->offsetUnset($key); } } }
『hide_db』を正規表現のパターンとして使用して、一致するデータベースを非表示としています。
ただし一覧から非表示となるだけで、アクセスすることはできます。
『information_schema』は、すべてのユーザーから参照される必要があるためGRANTなどでアクセスできるデータベースを限定しても自動的にアクセス権が付与されます。
SHOW DATABASES; SHOW TABLES FROM information_schema;
のようなSQL文では参照することができます。
スポンサーリンク
関連記事
- MySQL MariaDB
- PHP
- 開発環境 ツール類
- mailtoの使い方
- FreeMind マインドマップ作成ソフト
- Windows MySQLインストール後の設定
- Wordpress
- VirtualBox Interfaceが起動していてシャットダウンができないとき
- Google ChromeでHTTP headerをみる方法
- SSL通信かどうか
- Softbankで絵文字を表示させる
- 文字列型(データ型)のまとめ
- Microsoft Virtual PC 2007
- 日付型のフォーマットにスラッシュを使ってはいけません(文字コードによって値が変わる)
- WordPressのインストール
- PCからデコメールを送るときの仕様
- yumで、より新しいパッケージをインストールする方法(CentOS)
- Sleipnir 高機能タブブラウザ
- MySQLでdatetime型(日時)を日付で抽出するSQLの速度比較
- Google Chromeでテキストエリアtextareaのサイズ変更をさせない方法
- cron実行時の標準出力のメールを飛ばさない方法(cron実行時に毎回メールを飛ばさない)
- cron実行時に『/bin/sh: 〜〜: command not found』と出てcronが実行されない場合
- TortoiseGit Gitクライアント
- EC-CUBEでMySQLデータベースのデータ取得で文字化けするときの対処法
- EclipseでShift-JISを使用する方法
- レコード挿入時の #1364 - Field doesn't have a default value
- NetCommons(ネットコモンズ)
- PHPでのfacebookアプリの認証処理(APIを使うユーザー認証)
- stdClassクラスとは
- PEAR・PECLをインストールする方法
スポンサーリンク