ホームページ >バックエンド開発 >PHPチュートリアル >一般ユーザーがinformation_schemaを表示せずにphpmyadminにログインできるようにする

一般ユーザーがinformation_schemaを表示せずにphpmyadminにログインできるようにする

WBOY
WBOYオリジナル
2016-06-13 12:29:57870ブラウズ

一般ユーザーが information_schema
を表示せずに phpmyadmin にログインできるようにする

http://www.cnblogs.com/faily201/articles/2283245.html が書きました
通常の状況では、mysql をインストールし、phpmyadmin で管理にログインすると、インストールしたデータベースに加えて、information_schema データベースも存在することがわかります。権限が設定されていても、このテーブルは表示され、すべてのユーザーの関連情報がこのテーブルに表示されますが、パスワードは表示されません。
まず、information_schema とは何かを理解しましょう。
INFORMATION_SCHEMA は、MySQL サーバーによって維持される他のすべてのデータベースに関する情報を保持する情報データベースです。 INFORMATION_SCHEMA には、いくつかの読み取り専用テーブルがあります。これらは実際にはベーステーブルではなくビューであるため、それらに関連するファイルは表示されません。

各 MySQL ユーザーはこれらのテーブルにアクセスできますが、ユーザーが適切なアクセス権を持っているオブジェクトを含むテーブル内の特定の行にのみアクセスできます。
詳細は以下の通りです:

information_schema データベースには MySQL が付属しており、データベースのメタデータにアクセスする方法を提供します。メタデータとは何ですか?メタデータは、データベース名やテーブル名、列のデータ型、アクセス権限など、データに関するデータです。この情報を説明するために時々使用される他の用語には、「データ ディクショナリ」や「システム カタログ」などがあります。
MySQL では、information_schema はデータベース、正確には情報データベースとみなされます。これには、MySQL サーバーによって維持される他のすべてのデータベースに関する情報が保持されます。データベース名、データベーステーブル、データ型、テーブル列のアクセス権など。 INFORMATION_SCHEMA には、いくつかの読み取り専用テーブルがあります。これらは実際にはベーステーブルではなくビューであるため、それらに関連するファイルは表示されません。

information_schema データベース テーブルの説明:

SCHEMATA テーブル: 現在の mysql インスタンス内のすべてのデータベースに関する情報を提供します。 show Database の結果は、このテーブルから取得されます。

TABLES テーブル: データベース内のテーブル (ビューを含む) に関する情報を提供します。特定のテーブルがどのスキーマに属しているか、テーブル タイプ、テーブル エンジン、作成時間、その他の情報が詳細に記述されます。 show tables from schemaname の結果は、このテーブルから取得されます。

COLUMNS テーブル: テーブル内の列情報を提供します。テーブルのすべての列の詳細な説明と各列に関する情報。 show columns from schemaname.tablename の結果は、このテーブルから取得されます。

STATISTICS テーブル: テーブルのインデックスに関する情報を提供します。 show Index from schemaname.tablename の結果は、このテーブルから取得されます。

USER_PRIVILEGES (ユーザー権限) テーブル: 完全な権限に関する情報を提供します。この情報は、mysql.user 認証テーブルから取得されます。標準テーブルは「はい」または「いいえ」です。

SCHEMA_PRIVILEGES (スキーム権限) テーブル: スキーム (データベース) 権限に関する情報を提供します。この情報は、mysql.db 認証テーブルから取得されます。標準テーブルは「はい」または「いいえ」です。

TABLE_PRIVILEGES (テーブル権限) テーブル: テーブル権限に関する情報を提供します。この情報は、mysql.tables_priv 付与テーブルから取得されます。はい、またはいいえの標準テーブル。

COLUMN_PRIVILEGES (列権限) テーブル: 列権限に関する情報を提供します。この情報は、mysql.columns_priv 付与テーブルから取得されます。標準テーブルは「はい」または「いいえ」です。

CHARACTER_SETS (文字セット) テーブル: mysql インスタンスで使用できる文字セットに関する情報を提供します。 SHOW CHARACTER SET 結果セットはこのテーブルから取得されます。

COLLATIONS テーブル: 各文字セットに関する比較情報を提供します。

COLLATION_CHARACTER_SET_APPLICABILITY テーブル: 校正に使用できる文字セットを指定します。これらの列は、SHOW COLLATION の最初の 2 つの表示フィールドに相当します。

TABLE_CONSTRAINTS テーブル: 制約が存在するテーブルについて説明します。およびテーブルの制約タイプ。

KEY_COLUMN_USAGE テーブル: 制約のあるキー列を記述します。

ROUTINES テーブル: ストアド サブルーチン (ストアド プロシージャとストアド関数) に関する情報を提供します。現時点では、ROUTINES テーブルにはカスタム関数 (UDF) が含まれていません。 「mysql.proc name」という名前の列は、INFORMATION_SCHEMA.ROUTINES テーブルに対応する mysql.proc テーブルの列を指定します。

VIEWS テーブル: データベース内のビューに関する情報を提供します。ビューの表示権限が必要です。そうでない場合は、ビュー情報を表示できません。

TRIGGERS テーブル: トリガー プログラムに関する情報を提供します。このテーブルを表示するにはスーパー権限が必要です。

では、どうすれば表示されないようにすることができますか?
答えは次のとおりです:
phpMyAdmin で表示したくない場合は、config.inc で設定するだけです。 .php (一部はconfig.default.php) このような文

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

?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。