ストアドプロシージャとは?すとあどぷろしーじゃ
ストアドプロシージャとは、あらかじめ名前を付けてデータベース側へ登録しておく処理のまとまりで、複数のSQLに条件分岐や繰返しを組み合わせて書ける。アプリケーションからは名前と引数を指定して1回呼ぶだけで済むため往復が減り、呼び出す側には表そのものへの権限を渡さず、決められた処理を実行する権利だけを与えられる。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
同じ業務処理でも、SQLを1文ずつ送る作りではその数だけネットワークを往復する。判断を挟むたびに結果を持ち帰っていては、処理時間の大半が待ち時間で埋まる。処理そのものをデータのある側へ置いてしまえば、往復するのは呼出しと結果だけで済む。あわせて、利用者に表を直接触らせず定型の操作だけを許す入口としても使えるため、性能の設計と権限の設計が同じ仕組みの上で決まることになる。
具体例
MySQL や Microsoft SQL Server では、値引き率の判定から明細の登録、集計表の更新までを1本のプロシージャとして登録し、アプリケーションからは CALL 文1回で呼び出せる。個別のSQLを20回投げていた画面なら、往復は1回に減る。表を直接更新させたくない相手には、このプロシージャの実行権限だけを渡す形がとれる。
試験での引っ掛け
呼び出されて動くストアドプロシージャと、表への挿入や更新を契機に自動で起動するトリガは別の仕組みで、どちらが明示的に呼ぶ側かが問われる。もう一つ多いのが、データベース側へ処理を寄せればSQLインジェクションを防げるという誤解で、プロシージャの中で引数を文字列として連結し動的にSQLを組み立てれば同じように注入される。防いでいるのは処理の置き場所ではなく、値を文字列として結合しないバインド機構のほうである。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。