phpmyAdminのMySQLユーザーからテーブルを隠すことはできますか?
-
19-09-2019 - |
質問
MySQLユーザーがデータベースに追加されており、特定のテーブルの表示を防ぎたいと思います。
DropやAlterなどのステートメントを実行しないようにすることにより、MySQLを通じて彼らの特権を制限できます。しかし、PHPMyAdminで特定のテーブルを表示できないようにすることは可能ですか?
これを制御するMySQL特権がなければ(私は想像しないでしょう)、これを許可するphpMyAdminに構成がありますか?
ここでの回避策は、追加されていない新しいデータベースにテーブルを移動することです。これは私のアプリケーションのオプションではありません。
解決
テーブルを別のデータベースに移動し、ユーザーアカウントに1つのデータベースのみにパブリックテーブルにアクセスするように制限できます。 phpmyAdminを変更しようとするのは大きな間違いです。ユーザーは、テーブルにアクセスするためにカスタムクエリを書くだけで、死んだ単純なハックです。
これはデータベース側で行う必要があります。そうしないと、まったく意味がありません。 se-postgresql 私が知っている唯一のプロジェクトであり、テーブルによるテーブルを許可します。これがこれを行うことができる唯一のデータベースです とても この機能が必要な人はほとんどいません。
他のヒント
はい、phpmyadminで特定のデータベースを非表示にすることができます。
それを行うために、ただ開いてください config.inc.php あなたの中で phpmyadmin Webサーバールートのディレクトリまたは配置されている場所。または検索します config.inc.php
隠したい場合 Information_schema と mysql 後にこの行を追加します:
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['hide_db'] = '^information_schema|mysql$';
これです。
PhpMyAdminは、特定のMySQLユーザーとしてデータベースに接続します。そのユーザーに指定されたテーブルにアクセス許可がない場合、PHPMyAdminユーザーはそれにアクセスできません。それが当てはまるでしょう 全て もちろんmypmyadminユーザー。