CURRENT_USER

CURRENT_USER, CURRENT_USER()

現在のクライアントの認証にサーバが使用した 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 の権限テーブルにアカウント リストがないことが挙げられます。