@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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql5.5的一些函式_user()_current_user()MySql函式
- Oracle:Authid Current_User的使用(轉)Oracle
- AUTHID DEFINER\authid current_user與alter session set current_schemaSession
- 指令碼:獲取當前的User Trace檔案指令碼
- Oracle查詢當前使用者和當前使用者下的所有表Oracle
- 儲存過程許可權__Authid Current_User儲存過程
- ORACLE 儲存過程中的Authid Current_UserOracle儲存過程
- 使用 Authid Current_User 為呼叫者授權
- Oracle 定義者許可權與呼叫者許可權(AUTHID CURRENT_USER)Oracle
- manjaro 新增當前使用者到kvmJAR
- 使用者查詢當前session IDSession
- [20190423]簡單測試user和SYS_CONTEXT ('USERENV','CURRENT_USER').txtContext
- oracle儲存過程中authid current_user和authid definerOracle儲存過程
- 檢視當前使用者正在等待事件事件
- oracle 跟蹤當前使用者會話Oracle會話
- 版本影響當前使用者看到的物件物件
- 刪除當前資料庫連線使用者資料庫
- Python判斷當前使用者是否是rootPython
- sql 查詢當前使用者所有表的容量SQL
- 【轉】檢視Oracle當前使用者下的資訊Oracle
- 使用者介面設計--系統的當前物件物件
- 看看當前某個使用者執行什麼
- app直播原始碼,當前使用者截止當前時間在本月的連續簽到統計APP原始碼
- php 獲取當前域名和當前協議PHP協議
- 百度地圖JavaScript API獲取使用者當前經緯度並獲取使用者當前詳細地理位置地圖JavaScriptAPI
- $request 請求方法 獲取 API 的當前使用者API
- Linux檢視和剔除當前登入使用者Linux
- 檢視當前使用者執行語句等資訊
- 檢視當前登入的使用者及其IP地址
- vue重新整理當前頁面或者當前元件Vue元件
- Linux當前當前程式Linux
- 檢視linux系統當前登陸的使用者Linux
- ORACLE刪除當前使用者下所有的表的方法Oracle
- 使用當前使用者的資料庫鏈的實現資料庫
- [提問交流]onethink框架,怎麼獲取當前使用者框架
- swoole websocket 使用 passport 無法獲取當前使用者問題WebPassport
- Linux 下檢視系統當前登入使用者資訊Linux
- 匯出當前域內所有使用者hash的技術整理