MySQL関数リファレンス

接続時に指定されたユーザー名を確認する (USER)

スポンサードリンク
書式
USER( )

--以下の2つの関数はUSER関数の別名で、USER関数と同じ動作をする。
SESSION_USER( )
SYSTEM_USER( )

USER関数を使用することで接続時に指定されたユーザー名を調べることができます。

例1(rootを指定してログインした場合)
mysql> SELECT USER( );
+----------------+
| USER( )        |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

mysql> SELECT SESSION_USER( ), SYSTEM_USER( );
+-----------------+----------------+
| SESSION_USER( ) | SYSTEM_USER( ) |
+-----------------+----------------+
| root@localhost  | root@localhost |
+-----------------+----------------+
1 row in set (0.00 sec)

通常のユーザーである場合、このUSER関数はCURRENT_USER関数と同じ結果を返します。

例2(CURRENT_USER関数とUSER関数の比較1)
mysql> SELECT USER( ), CURRENT_USER( );
+----------------+-----------------+
| USER( )        | CURRENT_USER( ) |
+----------------+-----------------+
| root@localhost | root@localhost  |
+----------------+-----------------+
1 row in set (0.00 sec)

しかし匿名ユーザーでログインして、接続時に指定したユーザー名と認証時に使用されたユーザー名が異なる場合、CURRENT_USER関数はUSER関数が異なる結果を返します。
以下の例3は、接続時に「mysql -u tokumei」とデータベース上に存在しないユーザー名「tokumei」を指定し、匿名ユーザーとしてログインした場合の例です。

例3(CURRENT_USER関数とUSER関数の比較2)
mysql> SELECT USER( ), CURRENT_USER( );
+-------------------+-----------------+
| USER( )           | CURRENT_USER( ) |
+-------------------+-----------------+
| tokumei@localhost | @localhost      |
+-------------------+-----------------+
1 row in set (0.00 sec)
スポンサードリンク
Uではじまる MySQL の関数 / システム関数

システム関数

スポンサードリンク

Uではじまる MySQL の関数

UCASE アルファベット小文字を大文字に変換する
UPPER アルファベット小文字を大文字に変換する
USER 接続時に指定されたユーザー名を確認する