MYSQLトリガーを作成しています。私はトリガーがデータベース変更を開始したユーザーのIPアドレスを記録するようにしたいと思います。ユーザーのIPアドレスをMYSQLトリガーに挿入します
これは可能ですか?もしそうなら、MySQLはどのようにしてユーザーのIP Addyを入手できますか?
MYSQLトリガーを作成しています。私はトリガーがデータベース変更を開始したユーザーのIPアドレスを記録するようにしたいと思います。ユーザーのIPアドレスをMYSQLトリガーに挿入します
これは可能ですか?もしそうなら、MySQLはどのようにしてユーザーのIP Addyを入手できますか?
MySQLを使用しているユーザーのIPアドレスを取得することはできません。あなたはUSER()を介して呼び出しているユーザーにアクセスできます。例えば
mysql> select USER();
+--------------------+
| USER() |
+--------------------+
| [email protected] |
+--------------------+
1 row in set (0.06 sec)
あなたはMySQLユーザは、データベースの変更を開始したかを知りたい場合は、USER()機能、which will return the invoking userを使用することができます。
しかし、私たちがというMySQLユーザーについて話していることを理解してください。これはウェブとは関係ありません。たとえば、アプリケーションがWebアプリケーションの場合、アドレスは "localhost"またはサーバー名であり、Webアプリケーションを使用している人のアドレスではありません。住所を取得するには、PHPまたは同等の言語を使用して住所を取得する必要があります。
あなたはCURRENT_USER()を意味すると思いますが、とにかくトリガーのコンテキストでは機能しません。しかし、USER()を試してみてください。 –
トリガーの内部で期待通りに機能していない点については正しいですが、USERはこれを行います。 – hobodave