許可を定義すると、ユーザーは外部ルーチン内からオペレーティング システムI/O呼び出しを発行できます。ANSI SQL:2011の仕様では、ユーザー作成の非SQLモジュールを集合的に外部ルーチンと言います。
Teradata Databaseでは、オペレーティング システムI/Oを実行する外部ルーチンはすべて、明示的に指定されたユーザーID下で実行するのとは別個のプロセスとして、保護モードで実行する必要があります。保護実行モードと非保護実行モードを参照してください。許可オブジェクトは、システムをこれらの潜在的な問題にさらすことなく、これらの外部ルーチンによって必要とされる許可を提供するための、柔軟でありながらも強固なスキームを提供します。
保護モードで実行する外部ルーチンと、セキュア モードで実行する外部ルーチンとの主な違いは、保護モードで実行する外部ルーチンが常にOSユーザーtdatuserとして実行されるのに対し、セキュア モードで実行する外部ルーチンは外部許可と関連付ける任意のOSユーザーとして実行できる点です。tdatuserには特別な権限がありませんが、外部許可と関連付けられるOSユーザーにはOSファイルに対するあらゆる権限を割り当てることができます。それには、関連付けられている外部ルーチンのSQL定義のEXTERNAL SECURITY句で特別な権限を持つOSユーザーを指定するだけです。