Mysql
mysqladmin 使用者帳戶不安全?
我仍然在玩我自己的數據庫,試圖學習並看到了這個:
- 我可以毫無問題地更改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';
我大概可以繼續。以下是我關於此類內容的其他文章: