今天,在學習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.建立資料的錄...