信頼済みセッションでは、ユーザーとデータベース間のインターフェースを使用するアプリケーションに対しより多くのセキュリティが提供されます。特にユーザーが独自のSQLクエリー コマンドを実行依頼できる場合です。これによりユーザーは「SET QUERY_BAND」コマンドを実行依頼して、プロキシ ユーザーを変更することはできません。信頼済みセッションは、Teradata Database 13.10以降でサポートされています。
データベースでは、信頼済みSQL要求として実行依頼された場合を除き、SET QUERY_BAND SQLを使用して‘WITH TRUST_ONLY’オプションでGRANT CONNECT THROUGH権限を持つセッションのプロキシ ユーザーを設定または変更することはできません。ODBCドライバがSQLを信頼済みとして実行依頼するのは、SQL_ATTR_TRUSTED_SQL(13010)文属性が値SQL_TRUEでSQLSetStmtAttr()を呼び出すことによって設定される場合のみです。SQLExecute()またはSQLExecDirect()が呼び出されるとすぐに、SQL_ATTR_TRUSTED_SQLがデフォルト値SQL_FALSEにリセットされます。
GRANT CONNECT THROUGH権限の詳細については、データベース マニュアル<SQL データ制御言語、B035-1149>を参照してください。
以下に、信頼済みSQLを送信するサンプル コードを示します。
………. ………. RETCODE result; result = SQLSetStmtAttr(StatementHdl, SQL_ATTR_TRUSTED_SQL, (SQLPOINTER)SQL_TRUE, SQL_IS_UINTEGER); if (SQL_SUCCESS == result) { / After SQL execution, the SQL_ATTR_TRUSTED_SQL attribute value will be reset to SQL_FALSE // to prevent any further use of SET QUERY_BAND until you change the attribute to SQL_TRUE once again. result = SQLExecDirect(yourStatementHdl, (SQLTCHAR *) "SET QUERY_BAND='proxyuser=user1;'FOR SESSION; ", SQL_NTS);vt if (SQL_SUCCESS != result) { // Handle error } } else { // Handle error }