程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 關於Mysql權限表的使用小結

關於Mysql權限表的使用小結

編輯:MySQL綜合教程


關於Mysql權限表的使用小結   前幾天遇到一個問題。   我的msql權限表(mysql.user)的內容是這樣的:   www.2cto.com   Localhsot  User  Password   % root *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B bogon root *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B localhost xxw ::1 root *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B localhost bogon 然後,我從localhost登陸這個服務器   > mysql -u root -p   密碼輸入正確,但是提示:   www.2cto.com   ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES).   經過查詢官方文檔,原來和權限表的存儲規則和排序規則有關系:   存儲規則:如果User字段不為空,必須嚴格匹配;如果User字段存儲的值為空值,匹配所有用戶。同時,連接信息中,如果沒有指定user,或者-u後面是空值,系統會認為是某一用戶不提供用戶名來訪問,所以可以匹配所有用戶名;   排序規則:權限表被讀入內存的時候,按照限制的范圍大小來排序,限制越詳細的排在前面。首先按照Host字段排序,如果Host相同,就按照User字段排序。所以,如果有連接信息輸入的時候,是按照讀入內存的順序匹配的,而不是按照數據庫裡的規則匹配。   回頭看上面的例子,讀入內存後,權限表排序如下:   localhost xxw localhost       www.2cto.com   bogon root *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B bogon ::1 root *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B % root *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B   按照以上規則,匹配到了第二條。本條規則的密碼為空,但是我輸入了最後一條存儲的密碼,所以登錄失敗。   但是Mysql的提示確實有誤導性,使用戶認為是匹配到了最後一條.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved