1
各セッションユーザのアクティビティを非常に高いレベルでテーブルに保存したいと思います。 私は "audit.login_trigger"という手続きを書いた。私は必要なスキーマ(監査DBとテーブル)を作成しました。このようなものです。Mysql:init_connect変数内でプロシージャコールを正しく設定する方法
CREATE PROCEDURE audit.login_trigger()
SQL SECURITY DEFINER
BEGIN
INSERT INTO audit.audit_connect (thread_id, user, login_ts)
VALUES (CONNECTION_ID(), USER(), NOW());
END;
私はこれを "init_connect"内に配置しました。
SET GLOBAL init_connect="CALL audit.login_trigger()";
すべてのユーザー接続でこれを実行します。この手順のEXECUTE権限をrootユーザーに渡しましたが、rootユーザーがログインしたときに、監査スキーマが予期したとおりに移入されていません。ここで何がうまくいかなかったでしょうか?
ありがとうございます。
これは、init_connectからストアドプロシージャを呼び出すためには機能していないようです。一部の人々はそれを成功させるか、徹底的なテストをしなくても機能することを提案するだけかもしれません。ここにはawsディスカッション[リンクはこちら](https://forums.aws.amazon.com/thread.jspa?threadID=111750)へのリンクがあります。多分それはビルドバージョンによって異なります。 – Drew
5.7.13でうまく動作するようになった。ただし、5.6.24または5.6.31では機能しません。私が*これを働かせると言うとき、私は何か働くことを意味します。 'root'のためには、あまりにも長い間技術的な理由があっても、それはとにかく動作したくないでしょう。 – Drew