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密碼
- 如何讓普通使用者獲取root使用者的許可權
- mysql 8.0忘記root使用者密碼處理MySql密碼
- MySQL新增使用者使用者與授權MySql
- MySQL建立使用者和授權MySql
- mysql使用者建立與授權MySql
- mysql8.0授權root遠端訪問MySql
- 授權|取消授權MYSQL資料庫使用者許可權MySql資料庫
- Linux下建立root/普通使用者Linux
- MySQL使用普通使用者訪問返回ERROR 1698 (28000): Access denied for user 'root'@'localhost'MySqlErrorlocalhost
- linux 禁止普通使用者su到root使用者Linux
- Ubuntu-給新增使用者新增root許可權Ubuntu
- 給非 root 使用者新增 docker 使用許可權Docker
- Mysql 建立資料庫\新增使用者\使用者授權MySql資料庫
- 通過管理工具(hgdbdeveloper)新建使用者無法授權Developer
- MySQL-授權使用者管理資料庫MySql資料庫
- 在settings加入AUTHENTICATION_BACKENDS設定導致root使用者無法登入問題
- 使用者授權,策略的使用
- MySQL的Root使用者密碼MySql密碼
- linux 普通使用者提權Linux
- 【問題處理】升級12c之後,10G密碼版本使用者無法登陸問題密碼
- ubuntu 開放root使用者的SSH訪問許可權Ubuntu訪問許可權
- MySQL 給使用者新增 ALTER VIEW 的許可權MySqlView
- linux 新建使用者授權Linux
- onethinkphp新建模組後,無法使用普通使用者登入問題,麻煩幫忙看下。PHP
- LINUX忘記ROOT使用者密碼處理方法(linux單使用者模式)Linux密碼模式
- root使用者ssh無法登陸到伺服器伺服器
- mysql建立使用者並且對資料庫授權MySql資料庫
- mysql8.0資料庫新增使用者和授權MySql資料庫
- 3分鐘短文:任命管理員,給Laravel普通使用者提權Laravel
- mysql使用者建立、修改、刪除及授權操作的總結MySql
- Shiro實現使用者授權
- Oracle建立使用者和授權Oracle
- K8s 平臺可以如何處理 Pod 預授權問題K8S
- 解決root使用者對HDFS檔案系統沒有許可權的問題
- MySql中新增使用者,新建資料庫,使用者授權,刪除使用者,修改密碼MySql資料庫密碼
- 查詢資料庫授權以及授權到期的處理方法資料庫
- mysql如何修改root使用者的密碼MySql密碼
- root使用者無法通過ssh連線Linux系統Linux