mysql登陸案例 例項分析mysql使用者登入

2021-10-17 18:30:34 字數 3486 閱讀 2741

今天,在學習mysql授權認證時,遇到了乙個問題,看下,我是如何分析的:

我在資料庫內新增了乙個帳號:

create databases firstdb;

grant all on firstdb.* to

『firstdb』@』』 identified by 『***xx』;

flush privileges;

(原計畫用firstdb帳號登入能看到firstdb資料庫,沒想到發生了下面的故事,繼續看,你也會成長的。)

[root@wikiob ~]# mysql

-ufirstdb -p

enter password:

error 1045 (28000):

access denied for user 'firstdb'@'localhost' (using password: yes)

我的密碼,肯定沒有問題,通過提示分析,我現在用的登入是localhost+firstdb

,但我定義的是任意主機,感覺沒有匹配我想要的情況。

分析:看下mysql.user表的情況

(root@badboy:)[(none)]>select

host,user,password from mysql.user;

| host| user| password|

| localhost| root| d8bf0760b25d47a3ebf34f |

| wikiob.badboy.com | root| 0760b25d47a3ebf34f |

| 127.0.0.1| root| 760b25d47a3ebf34f |

| localhost|||

| wikiob.badboy.com |||

| localhost| mantis| 36d0d144bdc21263ccff |

| localhost| dvbbs|d1c26e56446e9de2f52813 |

| 192.168.1.162| root| 4d8bf0760b25d47a3ebf34f |

| 192.168.2.215| root| 4d8bf0760b25d47a3ebf34f |

|| firstdb | 18bb99005adca2ec9d1e19

| localhost| test_db | 2a1f959fd02f964c7af4cfc29

11 rows in set (0.00 sec)

我們根據mysql在載入授權表時,要排序,最終排序結果:

host| user| password|

localhost| root| d8bf0760b25d47a3ebf34f |

localhost| mantis| 36d0d144bdc21263ccff |

localhost| dvbbs|d1c26e56446e9de2f52813 |

localhost| test_db |

2a1f959fd02f964c7af4cfc29 |

localhost|||

wikiob.badboy.com | root|

0760b25d47a3ebf34f |

wikiob.badboy.com |||

127.0.0.1| root| 760b25d47a3ebf34f |

192.168.1.162| root| 4d8bf0760b25d47a3ebf34f |

192.168.2.215| root| 4d8bf0760b25d47a3ebf34f |

|| firstdb | 18bb99005adca2ec9d1e19 |

這樣的話,我剛剛輸入的mysql –ufirstdb –p就匹配了第5行,也就是說,客戶端是localhost,帳號是任意,密碼為空。

根據前面的判斷,我不輸入密碼試下;

[root@wikiob ~]# mysql -ufirstdb -p

enter password:

welcome to the mysql monitor.commands end with ; or \g.

your mysql connection id is 18

server version: 5.1.30-log source distribution

type 'help;' or '\h' for help. type '\c' to

clear the buffer.

(wiki@badboy:)[(none)]>

好,可以進去了。我現在來看看,我的登入帳號資訊:

(firstdb@badboy:)[(none)]>select

current_user();

| current_user() |

| @localhost|

1 row in set (0.00 sec)

看到沒,是匿名帳號,和我前面判斷的沒錯,那看下這個帳號下的資料庫有哪些….

(firstdb@badboy:)[(none)]>show

databases;

| database|

| information_schema |

| test|

| test_db|

3 rows in set (0.00 sec)

這三個資料庫是怎麼在匿名帳戶下呢?繼續分析…

看下mysql.db

(root@badboy:)[(none)]>select

host,user,db from mysql.db;

| host| user| db|

|| firstdb | firstdb |

| %|| test|

| %|| test\_% |

| localhost | dvbbs| discuz|

| localhost | mantis| mantis|

| localhost | test_db | test_db |

6 rows in set (0.00 sec)

再排序一次:

(root@badboy:)[(none)]>select

host,user,db from mysql.db;

host| user| db|

localhost | dvbbs| discuz|

localhost | mantis| mantis|

localhost | test_db | test_db |

|| firstdb | firstdb |

%|| test|

%|| test\_% |

rows in set (0.00 sec)

根據前面登入的是匿名使用者,那麼只能是最後兩行是匹配我的show databases;

通過這個例項,大家一定學會了,在grant乙個帳號後,用此帳號登入後發現不是自己想要的結果,如何排除問題嘍,加油!~

掃碼關注

Ajax登陸案例

需求 登陸頁面採用ajax提交使用者名稱和密碼 步驟 1 顯示出登陸頁面 1 定義檢視函式login ajax,通過瀏覽器訪問該檢視函式對應的url時顯示登陸頁面 2 配置url,建立url和檢視函式的對應關係 3 編寫登入頁面模板檔案,在裡面寫jquery 發起ajax請求。doctype htm...

Struts2登陸案例

最近在學習struts2框架,寫個基於stutrs的登陸案例,鞏固下struts2知識。1.stutus2簡介 struts2是乙個基於mvc設計模式的web應用框架,它本質上相當於乙個servlet,在mvc設計模式中,struts2作為控制器 controller 來建立模型與檢視的資料互動。2...

10案例分析

銀行 信用風險,即客戶違約風險,是銀行風險管控的主要內容。不同行業,不同企業,財務指標的風險程度不同。假資料,假資訊,假報表的現象,財務資訊的質量問題有三個方面是非常重要的 1.建立識別假報表的管理體系 2.研究建立財務資訊的勾稽關係,即通過相互之間的購機關係的檢驗來判別資料的質量 3.建立資料的錄...