回答:
実際には、2つの機能を使用する必要があります
SELECT USER(),CURRENT_USER();
USER()は、MySQLで認証しようとした方法を報告します
CURRENT_USER()は、MySQLでの認証を許可された方法を報告します
時々、彼らは異なっています
SHOW GRANTS;
して自分が持っているパーミッションを確認できます。以外USAGE
に何も表示されない場合でも、特定のテストデータベースは匿名ユーザーが100%アクセス可能であることに注意する必要があります。私のポストを参照してくださいMySQL : Why are there “test” entries in mysql.db?
(dba.stackexchange.com/q/13361/877)
SHOW GRANTS
、Mysqlチュートリアルを多数読んでいるにも関わらず、私がつまずいたことがないのは奇妙です。
mysql -ulalala
場所からmysqllalala
にログインすると、「匿名」のmysqlユーザー、つまりとしてログインできます''@'localhost'
。この場合、関数の戻りであろうUSER()= lalala@localhost
とCURRENT_USER() = @localhost