Mysql

mysqladmin 使用者帳戶不安全?

  • April 30, 2012

我仍然在玩我自己的數據庫,試圖學習並看到了這個:

在此處輸入圖像描述

  1. 我可以毫無問題地更改root密碼…如果我在伺服器中,我可以創建一個算法來開始測試密碼,並且有一天我會找到它,我的意思是:

Web-Services-iMac-2:~ jbolivar$ mysqladmin -utest1 -p**SOME_THING_HERE** password test1. 2. 可以用這個修改密碼嗎???:

更新表 mysql.user 設置密碼= PASSWORD (’test’) where user=‘test1’;

除此之外,如果我創建一個字典表(一個包含所有可能單詞的表)並應用PASSWORD(“單詞”),我可以進行連接並找到任何傳遞的值,對吧?你能對我的分析發表你的看法嗎?

在繼續使用 mysqladmin 之前,您需要確保您的安裝不是故意放棄訪問權限。

對於初學者,您可以像這樣登錄mysql嗎?

# mysql <hit enter>

如果你能得到這樣的結果,請執行以下命令:

SELECT USER(),CURRENT_USER();
  • USER()報告您如何嘗試在 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 和/或 root@127.0.0.1 並且有密碼

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

我大概可以繼續。以下是我關於此類內容的其他文章:

引用自:https://dba.stackexchange.com/questions/17173