- Home ›
- MySQLの使い方 ›
- MySQL関数の使い方
CURRENT_USER関数/USER関数(現在のユーザー名とホスト名を取得する)
MySQL で CURRENT_USER 関数を使用すると MySQL に接続する時に実際に認証が行われたユーザー名とホスト名を取得することができます。また USER 関数を使用すると MySQL に接続する時に認証しようとして指定したユーザー名とホスト名を取得することができます。ここでは MySQL における CURRENT_USER 関数および USER 関数の使い方について解説します。
(Last modified: )
CURRENT_USER 関数とUSER 関数の使い方
CURRENT_USER 関数は MySQL に接続する時に実際に認証が行われたユーザー名とホスト名を取得するために使用します。書式は次の通りです。
CURRENT_USER()
また USER 関数は MySQL に接続する時に認証しようとして指定したユーザー名とホスト名を取得するために使用します。書式は次の通りです。
USER()
CURRENT_USER 関数と USER 関数で取得する値は通常同じになりますが、例えば hoge@localhost で接続しようとしたけれど実際には匿名ユーザーの ''@localhost で接続が行われた場合などには異なる結果となります。この場合、 USER 関数では hoge@localhost を取得し、 CURRENT_USER 関数では @localhost を取得します。
匿名ユーザーが作成されている状況で、作成されていないユーザー名で接続しようとした場合などにこういった状況が発生します。ユーザーに対してどのような権限が割り当てられるのかは CURRENT_USER 関数で取得できるユーザー情報に基づきます。
※ SESSION_USER 関数および SYSTEM_USER 関数は USER 関数と同じです。
-- --
それでは実際に試してみます。 MySQL にユーザーとして追加されている root@localhost で接続したあとで次のように実行してください。
select current_user(), user();
どちらも同じ結果となりました。
次に匿名ユーザーの ''@localhost ユーザーが作成されている状態で、作成されていない hoge@localhost ユーザーで MySQL へ接続します。そのあとで次のように実行してください。
select current_user(), user();
USER 関数の方は MySQL へ接続する時にこのユーザーで接続しようとして指定したユーザー名を取得していますが、 CURRENT_USER 関数の方は実際に認証に使用されたユーザー名を取得しています。
-- --
current_user 関数および user 関数の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。