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
- 開発環境 ツール類
- Windows MySQLのインストール
- Gitを自動的にpullする方法(常に最新の状態にする)
- 文字コードを指定する方法
- HTMLファイルのエンコードを『内容から判別する』にしない方法
- Google Chromeの詳細情報を見る方法 HTTPヘッダー、通信状態など開発者向け情報
- zend_mm_heap corrupted とは
- 日本語名のフォルダを作成する場合の注意点
- symfonyのORマッパ(Propel、Doctrine)
- docomo端末でCSSを使うには
- Smarty2をPHP7に対応させる方法(The /e modifier is no longer supported Smarty_Compiler.class.php, line 270)
- file_get_contentsで$http_response_headerを使用するときの注意点
- 4.0以前と4.1以降のパスワード方式の違い
- PCやスマホがネットワーク内にあるかどうかを調べる(在宅かどうかの判断)
- データベースを定時バックアップする方法(毎日バックアップする処理)
- Mantisのメール文字化け
- 携帯電話端末の判別ライブラリ Net_UserAgent_Mobile
- プログラムでもっとも正確に日本の祝日を求める方法(内閣府公表CSVの過去3度の改訂履歴)
- MySQLの処理を停止させる方法
- アンダーバーのあるドメインではセッションクッキーは使用できません
- クッキー(cookie)について
- PukiWiki
- フォーム要素の属性名の『ドット( . )』は『アンダーバー( _ )』に変わります
- DB設計を見直してEC-CUBEを高速化する
- Windowsを定時にシャットダウンするツール
- yumのius(iuscommunity.org)でエラーが出る場合
- ODBC Windowsデータベースアクセス仕様
- Google Chromeでテキストエリアtextareaのサイズ変更をさせない方法
スポンサーリンク