17.5. 関数とトリガ

関数とトリガによって、ユーザは他のユーザが意識しないで実行できるようなコードを、バックエンドサーバに挿入することができます。 したがって、どちらの機能も他のユーザにみとがめられることなく トロイの木馬を実行することができるのです。 唯一の保護は、誰が関数やトリガを定義できるかを厳格に管理することです。

SQL以外の言語で書かれた関数は、すべてデータベースサーバデーモンプロセスのオペレーティングシステム権限で、バックエンドサーバの中で実行されます。 信頼された関数の内部からサーバの内部データ構造を変更することが可能です。 したがって、その他の多数のことの中でも、そのような関数はどのようなシステムアクセスコントロールも回避することができます。 これはユーザ定義 C 関数の固有の問題です。