mysql的root使用者無法給普通使用者授權問題處理
先看錯誤現象:
很奇怪,root使用者應該不可能無法授權普通使用者。看提示像是說密碼錯誤。但是實際上密碼沒有問題。
決定去看看mysql.user表中root@localhost這個使用者的許可權是怎麼樣的。在mysql.user表中記錄了與全域性相關的許可權資訊。這個全域性許可權不是指擁有所有的許可權,它具體指的是擁有該MYSQL伺服器所有資料庫物件的許可權。
mysql> select * from mysql.user where User='root' and Host='localhost'\G;
可以看到Grant_priv是N。很顯然,因為root@localhost這個使用者沒有授予許可權的許可權,所以之前的操作報錯。修改一下Grant_priv的值為Y,重新整理下,然後退出重新登入。問題就解決了。
總結:這個問題不是很常見。但是這個問題提供了一種解決思路,在許可權出問題時,應如何入手。mysql中許可權的粒度由粗到細分別是全域性,資料庫,表,列,程式。可以用一句話來概括:分配某個使用者從某臺機器連線進來訪問某個資料庫下的某張表的某個列的某部分記錄的許可權。記錄與全域性相關的許可權資訊就是mysql.user表中。記錄資料庫級別的許可權資訊是mysql.db表。記錄表物件的授權資訊記錄是mysql.tables_priv表中。列級許可權記錄在mysql.column_priv表中。
很奇怪,root使用者應該不可能無法授權普通使用者。看提示像是說密碼錯誤。但是實際上密碼沒有問題。
決定去看看mysql.user表中root@localhost這個使用者的許可權是怎麼樣的。在mysql.user表中記錄了與全域性相關的許可權資訊。這個全域性許可權不是指擁有所有的許可權,它具體指的是擁有該MYSQL伺服器所有資料庫物件的許可權。
mysql> select * from mysql.user where User='root' and Host='localhost'\G;
可以看到Grant_priv是N。很顯然,因為root@localhost這個使用者沒有授予許可權的許可權,所以之前的操作報錯。修改一下Grant_priv的值為Y,重新整理下,然後退出重新登入。問題就解決了。
mysql> update mysql.user set Grant_priv='Y' where User='root' and Host='localhost';
mysql> flush privileges;
總結:這個問題不是很常見。但是這個問題提供了一種解決思路,在許可權出問題時,應如何入手。mysql中許可權的粒度由粗到細分別是全域性,資料庫,表,列,程式。可以用一句話來概括:分配某個使用者從某臺機器連線進來訪問某個資料庫下的某張表的某個列的某部分記錄的許可權。記錄與全域性相關的許可權資訊就是mysql.user表中。記錄資料庫級別的許可權資訊是mysql.db表。記錄表物件的授權資訊記錄是mysql.tables_priv表中。列級許可權記錄在mysql.column_priv表中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28497416/viewspace-2132403/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql中root使用者誤刪的處理辦法MySql
- 【Mysql】給普通使用者mysqldump的許可權MySql
- 【問題處理】MySQL忘記root密碼的處理辦法MySql密碼
- 把Oracle的SQL執行計劃 授權給普通使用者OracleSQL
- MySQL建立使用者授權訪問MySql
- SYS使用者可以登入,其他使用者無法登陸的問題處理
- Linux Centos 普通使用者無法登陸SSH 問題LinuxCentOS
- Linux CentOS普通使用者無法登陸SSH問題LinuxCentOS
- MySQL新增使用者使用者與授權MySql
- mysql使用者建立與授權MySql
- MySQL建立使用者和授權MySql
- MySQL建立使用者與授權MySql
- MySql建立使用者及授權MySql
- mysql 8.0忘記root使用者密碼處理MySql密碼
- oracle 給使用者批量授權unlimite tablespaceOracleMIT
- MySQL 5.7 建立使用者並授權MySql
- MySQL新增使用者以及資料庫訪問授權MySql資料庫
- MySQL新增使用者、刪除使用者與授權MySql
- 通過管理工具(hgdbdeveloper)新建使用者無法授權Developer
- Mysql 建立資料庫\新增使用者\使用者授權MySql資料庫
- Ubuntu-給新增使用者新增root許可權Ubuntu
- 給非 root 使用者新增 docker 使用許可權Docker
- Linux給普通使用者新增ssh許可權Linux
- linux給普通使用者增加ssh許可權Linux
- 關於root(其他)使用者拒絕登陸mysql的處理方法MySql
- MySQL 多例項給root使用者建立密碼MySql密碼
- hadoop 目錄給某個使用者授權Hadoop
- MySQL新建使用者,授權,刪除使用者,修改密碼MySql密碼
- 普通使用者SSH無密碼互信建立 出現的問題以及解決辦法密碼
- linux 禁止普通使用者su到root使用者Linux
- 【問題處理】使用者無法順利刪除問題處理一則-ORA-00604和ORA-00942錯誤
- Linux下建立root/普通使用者Linux
- MySQL-授權使用者管理資料庫MySql資料庫
- 使用者授權,策略的使用
- Oracle建立使用者並給使用者授權查詢指定表或檢視的許可權Oracle
- MySQL使用普通使用者訪問返回ERROR 1698 (28000): Access denied for user 'root'@'localhost'MySqlErrorlocalhost
- Oracle中將一個使用者的所有物件授權給另一個使用者Oracle物件
- linux給一個普通使用者reboot許可權(轉)Linuxboot