回答
嘗試的CURRENT_USER()
功能。這將返回MySQL用於驗證客戶端連接的用戶名。這是確定您的特權的用戶名。
這可能與客戶端發送給MySQL的用戶名不同(例如,即使您發送了用戶名,MySQL可能使用匿名帳戶來驗證您的客戶端)。如果您希望連接時使用客戶端發送給MySQL的用戶名,請改用USER()
函數。
該值表示您在連接到服務器時指定的用戶名以及您連接的客戶端主機。該值可能與CURRENT_USER()的值不同。
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_current-user
使用此查詢:
SELECT USER();
或者
SELECT CURRENT_USER;
您可以使用:
SELECT USER();
或
SELECT CURRENT_USER();
詳見這裏http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_current-user
嘗試運行要麼
SELECT USER();
或
SELECT CURRENT_USER();
它有時可以是不同的,USER()將返回通過登錄您嘗試進行身份驗證和CURRENT_USER()將返回你是如何實際可認證。
打印誰在使用這個數據庫
select user();
或
select current_user();
我不喜歡你的答案,不僅不會增加任何新的東西,而且你的答案會錯過最重要的部分:這兩個函數之間的區別。 –
*在存儲的程序或視圖中,除非使用SQL SECURITY INVOKER特性定義,否則CURRENT_USER()會返回定義對象的用戶的帳戶(由DEFINER值給出)。在後一種情況下,CURRENT_USER()返回對象的調用者。 觸發器和事件無法定義SQL SECURITY特性,因此對於這些對象,CURRENT_USER()會返回定義該對象的用戶的帳戶。要返回調用者,請使用USER()或SESSION_USER()。* https://dev.mysql.com/doc/refman/5.5/en/string-functions.html –
沒有人有時間閱讀這些函數的所有歷史記錄,沒有人問你對這些函數的解釋,主要問題是如何在mysql中找到用戶名,他沒有問這兩個語句的區別。並且沒有什麼可以爲現有答案添加新內容,通過回答它來獲得唯一答案,從而使用戶獲得這個答案的信心。 –
您還可以使用當前用戶:從mysql.user MySQL的「選擇用戶,主機;
+---------------+-------------------------------+
| user | host |
+---------------+-------------------------------+
| fkernel | % |
| nagios | % |
| readonly | % |
| replicant | % |
| reporting | % |
| reporting_ro | % |
| nagios | xx.xx.xx.xx |
| haproxy_root | xx.xx.xx.xx
| root | 127.0.0.1 |
| nagios | localhost |
| root | localhost |
+---------------+-------------------------------+
- 1. 有沒有辦法知道你當前在使用哪個runloop或frame?
- 2. 有沒有辦法知道HTML表單當前正在提交?
- 3. 有沒有辦法知道當前有多少個webrole實例?
- 4. 在使用@Formula註解之前,有沒有辦法知道表別名?
- 5. 有沒有什麼辦法可以知道當前有多少用戶正在使用ColdFusion應用服務器
- 6. 有沒有辦法知道,當有人導入附加的vCard?
- 7. 有沒有辦法知道當前域是否啓用地理定位?
- 8. 在opengl中有沒有辦法知道你的紋理何時加載?
- 9. 有沒有辦法知道用戶是否發送了短信?
- 10. 有沒有辦法知道用戶是否打開郵件?
- 11. 在Groovy中,有沒有辦法知道持有閉包的變量的名稱?
- 12. 在Perl中:有沒有辦法知道列表中變量的名稱?
- 13. 有沒有辦法知道文件名是否是Excel格式?
- 14. 有沒有辦法使用VersionOne API獲取當前sprint名稱?
- 15. VBA中有沒有辦法知道未使用的變量?
- 16. 有沒有辦法知道我的應用程序目前有多少安裝?
- 17. 有沒有辦法檢查當前沒有登錄的用戶的角色?
- 18. 有沒有辦法知道在Perl中的未知類的實例的方法
- 19. 有沒有辦法知道誰在我的AWS賬戶中進行了更改?
- 20. 有沒有辦法在tomcat 8中維護當前登錄的用戶信息?
- 21. iOS:有沒有辦法知道用戶是否選擇了退出通知?
- 22. C#:有沒有辦法訪問當前字段的名稱?
- 23. 有沒有辦法斷言當前的命名空間?
- 24. OSX(還有iOS):有沒有辦法知道緩存的用戶GPS位置?
- 25. 有沒有什麼辦法知道在javascript中擴展屏幕
- 26. 有沒有辦法知道HttpResponse是否在Https中?
- 27. 在PHP中 - 有沒有辦法知道fsockopen何時超時?
- 28. 當用戶在wxStyledTextCtrl中進行更改時,有沒有辦法通知?
- 29. 有沒有辦法知道調用方法?
- 30. iPhone - 有沒有辦法知道引用是否(仍然)有效?
謝謝你的回答,如果我正確地讀這篇文章,使用CURRENT_USER()代替USER()的好處是,CURRENT_USER()將只返回經過驗證的用戶? – user1090729
基本上,客戶端可能會指定一個用戶進行身份驗證 - 但該特定用戶可能沒有授予表的權限。但是,由於桌面上的匿名權限,訪問權限仍然可以被授予。該函數返回用戶授予用戶認證權限(可能是匿名用戶)的權限,而不是客戶端指定的用戶。那裏的文檔有一個很好的例子。 – scotru
'錯誤1064(42000):您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以在第1行'CURRENT_USER()'附近使用正確的語法。 – User