あまり内容はありません
出落ちになりますが、あまりノウハウや失敗談というほど大きな話ではありません。
DBへのアクセス権がなくなり定時処理に失敗!
あるユーザのDBへのアクセス権がなくなる事態が発生しました。
そのユーザはDBで定時まとめ処理を行うのですが、アクセス権がなくなったことでその処理が行われず、ユーザ部門ではちょっとしたパニックに。
そもそもアクセス権がなくなること自体が想定されていなかったことや、ずさんな権限管理などが根本の原因ですが、少なくとも当面は何かしらの再発防止を実施する必要がありました。
アクセス権がなければメール送信するアプリを開発
アクセス権の死活を確認するアプリを作成しました。
DBのユーザ情報を取得しアクセス権がない状態であれば、異常として関係者にメール送信をするアプリです。
定時処理の前に一度確認すればいいのでタスクスケジューラで定時の少し前に起動するような簡易な仕組みとしていました。
ショートメール送信なども検討しましたが、実装スピードとコストからメールにしました。
テストのためにどんどんメールを送信する!
異常時にはちゃんと動作をして通知する必要があるので、アクセス権の確認とメール送信の動作確認は念入りに実施しました。
「ヨシッ!ちゃんと動作してる!これなら先日の失敗を防げる!」
テストが終わってイザ本番に実装しようとしたとき、気が付きました。
テストの間、本番同様の送信先設定であったことに...
幸い本番での送信先も関係者だけだったので大きな実害はないのですが、味気ないテストメールが関係者のメールボックスを埋めていたかと思うと...いやー申し訳ない!
その後
アプリは正常に動作し確認を実施していたようですが、実際にメールが送信されるような異常状態になることはありませんでした。
デスヨネー。うん、知ってた。