MySQL:select command denied to user for table 'proc'案例


使用EMS MySQL Manager Pro(3.4.0.1)連接MySQL 5.6.20時,報錯:SELECT command denied to user xxx@xxx.xxx.xxx.xxx for table 'proc'

 

 

clip_image001

 

很是納悶,后面使用同樣的權限,發現使用命令工具mysql -h xxxx -u username -p連接時不會報錯。個人猜測是因為EMS MySQL Manager(3.4.0.1)連接數據庫時,會去查詢mysql.proc表獲取相關的對象(存儲過程、函數等)。於是在測試服務器開啟了MySQL查詢日志,然后在客戶端電腦使用EMS MySQL Manager Pro連接到數據庫(Connect to Database),然后檢查查詢日志具體信息,發現如下所示,EMS MySQL Manager連接數據庫時確實會去查詢mysql.proc, 而因為權限問題,所以報如上錯誤:

 

#tail -60f /var/lib/mysql/mytestlnx02.log 
/usr/sbin/mysqld, Version: 5.6.41 (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
190108 14:54:07   111 Connect   mytest@letnb00021 on 
                  111 Query     SHOW VARIABLES
                  111 Query     SHOW STATUS
                  111 Quit
                  112 Connect   mytest@letnb00021 on MyDB
                  112 Query     BEGIN
                  112 Query     show collation
                  112 Query     SHOW VARIABLES
                  112 Query     SHOW ENGINES
                  112 Query     SHOW FULL TABLES
                  112 Query     SHOW FULL TABLES
                  112 Query     SHOW COLUMNS FROM `mysql`.`proc`
                  112 Query     SHOW INDEX FROM `mysql`.`proc`
                  112 Query     select p.`db`, p.`name`, p.`type`, p.`specific_name`, p.`language`, p.`sql_data_access`, p.`is_deterministic`, p.`security_type`, p.`param_list`, p.`returns`, p.`body`, p.`definer`, p.`created`, p.`modified`, p.`sql_mode`, p.`comment` from `mysql`.`proc` as p where p.`type` = 'PROCEDURE' and p.`db`='MyDB'

 

 

解決方案:

 

 

  1:使用root賬號登錄數據庫,執行下面SQL語句授予相關查詢權限,即可解決問題(使用具體賬號替換usename)

 

grant select on mysql.proc to username

 

 

  2: 在EMS MySQL Manager工具對應的Register Database的"Display Options" 選項里面,取消"Procedures"、"Functins"選項也可以解決問題。這樣EMS MySQL Manager連接數據庫時,不會去查詢相關的存儲過程、函數等對象。就不會報這個錯誤。但是呢,這樣就會在工具里面看不到這些對象。

 

   

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM