web-dev-qa-db-ja.com

mysqladminユーザーアカウントが安全ではありませんか?

私はまだこれを学ぼうとして自分のDBで遊んでいて、これを見ました:

enter image description here

  1. ルートパスワードはまったく問題なく変更できました...サーバーにいる場合は、パスワードのテストを開始するアルゴリズムを作成できます。いつかそれが見つかります。つまり、次のようになります。

    Web-Services-iMac-2:~ jbolivar$ mysqladmin -utest1 -p**SOME_THING_HERE** password test1

  2. これを使用してパスワードを変更しても大丈夫ですか?:

    テーブルの更新mysql.userset password = [〜#〜] password [〜#〜]( 'test')where user = 'test1';

その上、辞書テーブル(可能なすべての単語を含むテーブル)を作成して適用すると、[〜#〜] password [〜#〜]( "Word")結合して、値を見つけることができますどんなパスでもいいですか?私の分析についてあなたの意見を聞かせてください。

2
jcho360

Mysqladminでの作業を続行する前に、インストールが意図的にアクセスを許可していないことを確認する必要があります。

手始めに、このようにmysqlにログインできますか?

# mysql <hit enter>

そのようにできる場合は、次のコマンドを実行します。

SELECT USER(),CURRENT_USER();
  • SER() MySQLで認証を試みた方法を報告します
  • CURRENT_USER() MySQLでの認証がどのように許可されたかを報告します

CURRENT_USER()がユーザーと、ユーザーが空白のホストを返す場合、匿名ユーザーとして許可されています。その時点で、次の方法で匿名ユーザーを削除できます。

DELETE FROM mysql.user WHERE user='';
FLUSH PRIVILEGES;

次に、パスワードのないすべてのユーザーを次のように検索します。

SELECT user,Host,password FROM mysql.user;

パスワードを持っていないユーザーがいる場合は、mysqladminを使用してユーザーに新しいパスワードを発行するか、次のようにパスワードを割り当てることができます。

UPDATE mysql.user SET password=PASSWORD('whateverpassword') WHERE user='...' AND Host='...';
FLUSH PRIVILEGES;

次に、リモートユーザーを確認します

SELECT user,Host FROM mysql.user WHERE Host='%';

何かが表示された場合は、これを実行します。

DELETE FROM mysql.user WHERE Host='%';
FLUSH PRIVILEGES;

すべてのことを言い終えたら、少なくともroot @localhostおよび/または[email protected]が存在し、パスワードを持っていることを確認してください

SELECT user,Host,password FROM mysql.user WHERE user='root';

私はおそらく続けることができます。これが私がこのようなものについて持っている他の投稿です:

0
RolandoMySQLDBA