@1-MYSQL當前使用者user()與current_user()
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- AUTHID CURRENT_USER的注意點
- [20190423]簡單測試user和SYS_CONTEXT ('USERENV','CURRENT_USER').txtContext
- manjaro 新增當前使用者到kvmJAR
- 刪除當前資料庫連線使用者資料庫
- app直播原始碼,當前使用者截止當前時間在本月的連續簽到統計APP原始碼
- 百度地圖JavaScript API獲取使用者當前經緯度並獲取使用者當前詳細地理位置地圖JavaScriptAPI
- Linux當前當前程式Linux
- js_原生js獲取當前的使用者ipJS
- SqlCommand.CommandTimeout超時使用者請求當前操作SQL
- 檢視linux系統當前登陸的使用者Linux
- $request 請求方法 獲取 API 的當前使用者API
- php 獲取當前域名和當前協議PHP協議
- vue重新整理當前頁面或者當前元件Vue元件
- [提問交流]onethink框架,怎麼獲取當前使用者框架
- 2.1.4 當前容器
- ORA-01940 無法刪除當前連線的使用者
- swoole websocket 使用 passport 無法獲取當前使用者問題WebPassport
- Linux 下檢視系統當前登入使用者資訊Linux
- js 怎樣判斷使用者是否在瀏覽當前頁面JS
- 匯出當前域內所有使用者hash的技術整理
- Spring Security - 獲取當前登入使用者的詳細資訊Spring
- 如何用js獲取當前時間和ip地址以及當前城市JS
- 使用mimipenguin實現從當前 Linux 使用者轉儲登入密碼NGUILinux密碼
- JavaScript 獲取當前月份JavaScript
- 獲取當前時間
- 8.2 快照讀,當前讀
- jquery/js透過當前URL對當前欄目連結高亮顯示jQueryJS
- Django使用者認證系統(一)User物件Django物件
- 利用爬蟲獲取當前博文數量與字數爬蟲
- 如何查詢當前SAP使用者所屬的組織單元(organization unit)
- 判斷當前訪問的使用者是 PC端 還是 手機端
- AD 批量匯入使用者(利用 for……do……dsadd user 批量建使用者)
- mybatis獲取當前時間MyBatis
- 獲取當前頁面的topViewControllerViewController
- JavaScript當前tr行高亮效果JavaScript
- Java獲取當前星期幾Java
- 檢視git當前版本號Git
- 函數語言程式設計的興衰與當前之崛起函數程式設計