信頼済みセッション - ODBC Driver for Teradata

ODBC Driver for Teradata® ユーザー ガイド

Product
ODBC Driver for Teradata
Release Number
16.20
Published
2018年10月
Language
日本語
Last Update
2019-02-12
dita:mapPath
ja-JP/fxv1527114222338.ditamap
dita:ditavalPath
ja-JP/fxv1527114222338.ditaval
dita:id
B035-2526
Product Category
Teradata Tools and Utilities

信頼済みセッションでは、ユーザーとデータベース間のインターフェースを使用するアプリケーションに対しより多くのセキュリティが提供されます。特にユーザーが独自の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
}