国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL驗證用戶權限的方法

2024-07-24 12:45:31
字體:
來源:轉載
供稿:網友

知識歸納

因為MySQL是使用User和Host兩個字段來確定用戶身份的,這樣就帶來一個問題,就是一個客戶端到底屬于哪個host。
如果一個客戶端同時匹配幾個Host,對用戶的確定將按照下面的優先級來排

基本觀點越精確的匹配越優先 Host列上,越是確定的Host越優先,[localhost, 192.168.1.1, wiki.yfang.cn] 優先于[192.168.%, %.yfang.cn],優先于[192.%, %.cn],優先于[%] User列上,明確的username優先于空username。(空username匹配所有用戶名,即匿名用戶匹配所有用戶) Host列優先于User列考慮

當你登錄mysql服務器之后,你可以使用user()和current_user()來檢查你登陸的用戶。

user() 返回你連接server時候指定的用戶和主機 current_user() 返回在mysql.user表中匹配到的用戶和主機,這將確定你在數據庫中的權限

當你登錄服務器并執行MySQL的命令時,系統將檢查你當前的用戶(current_user)是否有權限進行當前操作。

首先檢查user表中的全局權限,如果滿足條件,則執行操作 如果上面的失敗,則檢查mysql.db表中是否有滿足條件的權限,如果滿足,則執行操作 如果上面的失敗,則檢查mysql.table_priv和mysql.columns_priv(如果是存儲過程操作則檢查mysql.procs_priv),如果滿足,則執行操作 如果以上檢查均失敗,則系統拒絕執行操作。

測試過程
創建3個用戶名相同,HOST和權限都不同的USER

mysql> grant select on *.* to ''@'%' identified by '123';Query OK, 0 rows affected (0.00 sec)mysql> grant select,createon *.* to 'bruce'@'10.20.0.232' identified by '123';Query OK, 0 rows affected (0.01 sec)mysql> grant select,create,deleteon *.* to 'bruce'@'%' identified by'123';Query OK, 0rows affected (0.00 sec)

從另外一個機器登陸過來

[root@brucetest7 ~]# mysql -ubruce -p -h10.20.0.231Enter password: Welcome to the MariaDB monitor. Commands end with ; or /g.Your MySQL connection id is 5Server version: 5.5.20-log MySQL Community Server (GPL)This software comes with ABSOLUTELY NO WARRANTY. This is free software,and you are welcome tomodify and redistribute it under the GPL v2 licenseType 'help;' or '/h' for help. Type'/c'to clear the current inputstatement.MySQL [(none)]> show grants;+-------------------------------------------------------------------------------------------------------------------------+| Grants for bruce@10.20.0.232 |+-------------------------------------------------------------------------------------------------------------------------+| GRANT SELECT, CREATEON *.* TO 'bruce'@'10.20.0.232' IDENTIFIED BY PASSWORD'*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |+-------------------------------------------------------------------------------------------------------------------------+1 row inset (0.00 sec)MySQL [(none)]> select user(), current_user();+-------------------+-------------------+| user() | current_user() |+-------------------+-------------------+| bruce@10.20.0.232 | bruce@10.20.0.232 |+-------------------+-------------------+1 row in set (0.03 sec)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 诏安县| 浏阳市| 临沂市| 瑞丽市| 沙河市| 鄂托克前旗| 靖安县| 海原县| 安泽县| 连云港市| 新兴县| 肥东县| 新田县| 齐齐哈尔市| 浑源县| 扬州市| 宜君县| 桑植县| 舟山市| 库尔勒市| 元朗区| 咸丰县| 济南市| 溧阳市| 庄浪县| 夏津县| 方城县| 沭阳县| 西林县| 凤城市| 栖霞市| 嘉义市| 荆州市| 南投市| 融水| 江山市| 乐安县| 宽城| 石泉县| 新龙县| 富平县|