@1-MYSQL當前使用者user()與current_user()

T1YSL發表於2022-03-12

MYSQL在進行登陸時,會去匹配mysql庫中的user表,並賦予相應的許可權
在MYSQL中,有兩個函式,一個是 user(),一個是 current_user();

user()是用來顯示當前登陸的使用者名稱與它對應的host,
currrent_user()是用來顯示當前登陸使用者對應在user表中的哪一個。

mysql> select user();
+----------------------+
| user()               |
+----------------------+
| test@192.168.203.132 |
+----------------------+
1 row in set (0.00 sec)
mysql> select current_user();
+------------------+
| current_user()   |
+------------------+
| test@192.168.%.% |
+------------------+
1 row in set (0.00 sec)

一、有什麼許可權
所以假如我們想知道當前登陸的使用者具有什麼許可權的話,第一步是找出當前登陸使用者是用user表中的哪一個,用current_user()。

mysql> select current_user();
+----------------+
| current_user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.01 sec)

第二步用show grants命令

mysql> show grants for 'root'@'localhost';
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

二、如果針對使用者網段有限制,匹配哪一個

mysql> grant select on *.* to test@192.168.203.132 identified by '000000';
Query OK, 0 rows affected (0.00 sec)
mysql> grant select,update on *.* to 'test'@'192.168.203.%' identified by '000000';
Query OK, 0 rows affected (0.01 sec)
mysql> grant select,update,insert on *.* to 'test'@'192.168.%.%' identified by '000000';    
Query OK, 0 rows affected (0.01 sec)
mysql> grant select,update,insert,delete on *.* to 'test'@'192.%.%.%' identified by '000000';        
Query OK, 0 rows affected (0.00 sec)

可以用,進一步檢視

mysql> use mysql;
Database changed
mysql> select user,host from user order by user,host;

select current_user();可以每次獲取到匹配的網段的,而select user();的是具體的ip的。

mysql在登陸時會用最精確匹配user表中的帳戶,host來作為當前的使用者。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2869871/,如需轉載,請註明出處,否則將追究法律責任。

相關文章