現在のクライアントの認証にサーバが使用した MySQL アカウントの、ユーザ名とホスト名のコンビネーションを戻します。このアカウントは、開発者のアクセス特権を確認します。SQL SECURITY DEFINER 特徴で定義されたストアド ルーチン内で、CURRENT_USER() はルーチンのクリエイターを戻します。戻り値は utf8 文字セット内のストリングです。
CURRENT_USER() の値は、USER() の値によって異なる場合があります。
mysql>SELECT USER();-> 'davida@localhost' mysql>SELECT * FROM mysql.user;ERROR 1044: Access denied for user ''@'localhost' to database 'mysql' mysql>SELECT CURRENT_USER();-> '@localhost'
この例は、クライアントが davida のユーザ名を指定 ( USER() の値で示されるように ) した場合でも、サーバは匿名のユーザ アカウント ( CURRENT_USER() 値の空のユーザ名部分に見られるように ) を使用してクライアントを認証するということを示しています。これが起こるひとつの原因として、davida の権限テーブルにアカウント リストがないことが挙げられます。