初期化プロパティと承認プロパティ
SQL Native Client OLE DB プロバイダでは、OLE DB 初期化プロパティと承認プロパティを次のように解釈します。
プロパティ ID | 説明 |
---|---|
DBPROP_AUTH_CACHE_AUTHINFO |
SQL Native Client OLE DB プロバイダは、承認情報をキャッシュしません。 SQL Native Client OLE DB プロバイダは、このプロパティ値の設定が試みられると DB_S_ERRORSOCCURRED を返します。DBPROP 構造体の dwStatus メンバは、DBPROPSTATUS_NOTSUPPORTED を示します。 |
DBPROP_AUTH_ENCRYPT_PASSWORD |
SQL Native Client OLE DB プロバイダは、標準の Microsoft SQL Server セキュリティ メカニズムを使用してパスワードを隠します。 SQL Native Client OLE DB プロバイダは、このプロパティ値の設定が試みられると DB_S_ERRORSOCCURRED を返します。DBPROP 構造体の dwStatus メンバは、DBPROPSTATUS_NOTSUPPORTED を示します。 |
DBPROP_AUTH_INTEGRATED |
DBPROP_AUTH_INTEGRATED に NULL ポインタ、NULL 文字列、または 'SSPI' VT_BSTR 値を設定すると、SQL Native Client OLE DB プロバイダは、Windows 認証モードを使用して、DBPROP_INIT_DATASOURCE プロパティと DBPROP_INIT_CATALOG プロパティで指定されている SQL Server データベースへのユーザー アクセスを承認します。 VT_EMPTY (既定値) に設定すると、SQL Server セキュリティが使用されます。SQL Server ログインとパスワードは、DBPROP_AUTH_USERID プロパティと DBPROP_AUTH_PASSWORD プロパティで指定されます。 |
DBPROP_AUTH_MASK_PASSWORD |
SQL Native Client OLE DB プロバイダは、標準の SQL Server セキュリティ メカニズムを使用してパスワードを隠します。 SQL Native Client OLE DB プロバイダは、このプロパティ値の設定が試みられると DB_S_ERRORSOCCURRED を返します。DBPROP 構造体の dwStatus メンバは、DBPROPSTATUS_NOTSUPPORTED を示します。 |
DBPROP_AUTH_PASSWORD |
SQL Server ログインに割り当てられたパスワードです。このプロパティは、SQL Server データベースへのアクセスの承認に SQL Server 認証が選択された場合に使用されます。 |
DBPROP_AUTH_PERSIST_ENCRYPTED |
SQL Native Client OLE DB プロバイダは、承認情報を保存するとき、この情報を暗号化しません。 SQL Native Client OLE DB プロバイダは、このプロパティ値の設定が試みられると DB_S_ERRORSOCCURRED を返します。DBPROP 構造体の dwStatus メンバは、DBPROPSTATUS_NOTSUPPORTED を示します。 |
DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO |
SQL Native Client OLE DB プロバイダは、認証情報を保存するよう要求された場合に、パスワードのイメージを含めて、この情報を保存します。暗号化は行われません。 |
DBPROP_AUTH_USERID |
SQL Server ログインです。このプロパティは、SQL Server データベースへのアクセスの承認に SQL Server 認証が選択された場合に使用されます。 |
DBPROP_INIT_ASYNCH |
SQL Native Client OLE DB プロバイダは、非同期の初期化をサポートします。 DBPROPVAL_ASYNCH_INITIALIZE ビットを DBPROP_INIT_ASYNCH プロパティに設定すると、IDBInitialize::Initialize は非ブロッキング呼び出しになります。詳細については、「非同期操作の実行」を参照してください。 |
DBPROP_INIT_CATALOG |
接続先の既存の SQL Server データベース名です。 |
DBPROP_INIT_DATASOURCE |
Microsoft SQL Server インスタンスを実行するサーバーのネットワーク名です。同じコンピュータに複数の SQL Server インスタンスがある場合は、SQL Server の特定のインスタンスに接続するために、DBPROP_INIT_DATASOURCE の値を \\ServerName\InstanceName の形式で指定します。エスケープ シーケンスの \\ は、円記号を表すために使用されます。 |
DBPROP_INIT_GENERALTIMEOUT |
データ ソースの初期化とコマンドの実行以外の要求がタイムアウトするまでの秒数を示します。値 0 は、タイムアウトしないことを表します。プロバイダがネットワーク接続経由で動作している場合、または分散シナリオやトランザクション シナリオで実行されている場合、このプロパティをサポートすることで、実行時間の長い要求が発生した際に、参加しているコンポーネントに対してタイムアウトするよう指示できます。データ ソースの初期化とコマンド実行のタイムアウトについては、それぞれ DBPROP_INIT_TIMEOUT と DBPROP_COMMANDTIMEOUT で指定されます。 DBPROP_INIT_GENERALTIMEOUT は読み取り専用のプロパティです。値の設定が試みられると、DBPROPSTATUS_NOTSETTABLE の dwstatus エラーが返されます。 |
DBPROP_INIT_HWND |
呼び出し元アプリケーションのウィンドウ ハンドルです。初期化プロパティに入力要求が許可されている場合は、初期化ダイアログ ボックスを表示するために、有効なウィンドウ ハンドルが必要です。 |
DBPROP_INIT_IMPERSONATION_LEVEL |
SQL Native Client OLE DB プロバイダでは、権限借用レベルの調整はサポートされません。 SQL Native Client OLE DB プロバイダは、このプロパティ値の設定が試みられると DB_S_ERRORSOCCURRED を返します。DBPROP 構造体の dwStatus メンバは、DBPROPSTATUS_NOTSUPPORTED を示します。 |
DBPROP_INIT_LCID |
SQL Native Client OLE DB プロバイダはロケール ID を検証します。ロケール ID がサポートされていないか、クライアントにインストールされていない場合はエラーを返します。 |
DBPROP_INIT_LOCATION |
SQL Native Client OLE DB プロバイダは、このプロパティ値の設定が試みられると DB_S_ERRORSOCCURRED を返します。DBPROP 構造体の dwStatus メンバは、DBPROPSTATUS_NOTSUPPORTED を示します。 |
DBPROP_INIT_MODE |
SQL Native Client OLE DB プロバイダは、このプロパティ値の設定が試みられると DB_S_ERRORSOCCURRED を返します。DBPROP 構造体の dwStatus メンバは、DBPROPSTATUS_NOTSUPPORTED を示します。 |
DBPROP_INIT_PROMPT |
SQL Native Client OLE DB プロバイダは、データ ソースの初期化ですべての入力要求モードをサポートします。SQL Native Client OLE DB プロバイダは、このプロパティの既定の設定に DBPROMPT_NOPROMPT を使用します。 |
DBPROP_INIT_PROTECTION_LEVEL |
SQL Native Client OLE DB プロバイダは、SQL Server インスタンスへの接続で保護レベルをサポートしません。 SQL Native Client OLE DB プロバイダは、このプロパティ値の設定が試みられると DB_S_ERRORSOCCURRED を返します。DBPROP 構造体の dwStatus メンバは、DBPROPSTATUS_NOTSUPPORTED を示します。 |
DBPROP_INIT_PROVIDERSTRING |
このトピックの最後にある「SQL Native Client OLE DB プロバイダの文字列」を参照してください。 |
DBPROP_INIT_TIMEOUT |
SQL Native Client OLE DB プロバイダは、SQL Server インスタンスへの接続が指定された時間 (秒単位) 内に確立できなかった場合、初期化時にエラーを返します。 |
プロバイダ固有のプロパティ セット DBPROPSET_SQLSERVERDBINIT には、SQL Native Client OLE DB プロバイダにより、次の追加の初期化プロパティが定義されます。
プロパティ ID
説明
SSPROP_AUTH_OLD_PASSWORD
型 : VT_BSTR
R/W: 書き込み
既定値 : VT_EMPTY
説明 : 現在のパスワードまたは有効期限が切れたパスワードです。詳細については、「プログラムによるパスワードの変更」を参照してください。
SSPROP_INIT_APPNAME
型 : VT_BSTR
R/W : 読み取り/書き込み
説明 : クライアント アプリケーション名です。
SSPROP_INIT_AUTOTRANSLATE
型 : VT_BOOL
R/W: 読み取り/書き込み
既定値 : VARIANT_TRUE
説明 : OEM/ANSI 文字変換です。
VARIANT_TRUE: SQL Native Client OLE DB プロバイダは、Unicode を介した変換によりクライアントとサーバー間で送信される ANSI 文字を変換し、クライアントとサーバーのコード ページ間での拡張文字の対応付けで、できる限り問題が発生しないようにします。
クライアントの DBTYPE_STR データを SQL Server の char 型、varchar 型、または text 型の変数、パラメータ、列のインスタンスに送信する場合、クライアントの ANSI コード ページ (ACP) に基づいて文字が Unicode に変換され、その後で、サーバーの ACP に基づいて Unicode から文字に変換されます。
SQL Server の char 型、varchar 型、または text 型のデータをクライアントの DBTYPE_STR 変数に送信する場合は、サーバーの ACP に基づいて文字が Unicode に変換され、その後で、クライアントの ACP に基づいて Unicode から文字に変換されます。
この変換は、SQL Native Client OLE DB プロバイダによってクライアントで行われます。そのため、サーバーで使用しているものと同じ ACP がクライアントでも使用可能になっている必要があります。
次の設定は、送受信時の変換に影響しません。
サーバーの char 型、varchar 型、または text 型に送信される、Unicode の DBTYPE_WSTR クライアント データ。
クライアントの Unicode の DBTYPE_WSTR 変数に送信される、char 型、varchar 型、または text 型のサーバー データ。
サーバーの Unicode の nchar 型、nvarchar 型、または ntext 型に送信される、ANSI DBTYPE_STR クライアント データ。
クライアントの ANSI DBTYPE_STR 変数に送信される、Unicode の char 型、varchar 型、または text 型のサーバー データ。
VARIANT_FALSE: SQL Native Client OLE DB プロバイダは文字変換を行いません。
SQL Native Client OLE DB プロバイダでは、サーバーの char 型、varchar 型、または text 型の変数、パラメータ、列のいずれかに送信される、クライアントの ANSI 文字の DBTYPE_STR データは変換されません。またサーバーからクライアントの DBTYPE_STR 変数に送信される、char 型、varchar 型、または text 型のデータも変換されません。
クライアントと SQL Server インスタンスが使用する ACP が異なる場合、拡張文字の解釈が正しく行われない場合があります。
SSPROP_INIT_CURRENTLANGUAGE
型 : VT_BSTR
R/W : 読み取り/書き込み
説明 : SQL Server の言語名です。システム メッセージの選択や書式設定に使われる言語を示します。指定された言語が SQL Server インスタンスを実行するコンピュータにインストールされていないと、データ ソースの初期化が失敗します。
SSPROP_INIT_DATATYPECOMPATIBILITY
型 : VT_UI2
R/W: 読み取り/書き込み
既定値 : 0
説明 : SQL Server 2005 と ActiveX Data Object (ADO) アプリケーション間のデータ型の互換性を確保します。既定値の 0 が使用されている場合、データ型の処理では、プロバイダが既定で使用するデータ型が使われます。値 80 が使用されている場合、データ型の処理では、SQL Server 2000 のデータ型しか使われません。詳細については、「SQL Native Client と ADO の併用」を参照してください。
SSPROP_INIT_ENCRYPT
型 : VT_BOOL
R/W: 読み取り/書き込み
既定値 : VARIANT_FALSE
説明 : ネットワーク経由で転送されるデータを暗号化する場合は、SSPROP_INIT_ENCRYPT プロパティを VARIANT_TRUE に設定します。
プロトコルの暗号化が有効な場合は、SSPROP_INIT_ENCRYPT の設定に関係なく、常に暗号化が行われます。プロトコルの暗号化が無効な場合でも、SSPROP_INIT_ENCRYPT が VARIANT_TRUE に設定されている場合は、暗号化が行われます。
プロトコルの暗号化が無効で、SSPROP_INIT_ENCRYPT が VARIANT_FALSE に設定されている場合は、暗号化は行われません。
SSPROP_INIT_FAILOVERPARTNER
型 : VT_BSTR
R/W: 読み取り/書き込み
説明 : データベース ミラーリングのフェールオーバー パートナーの名前を示します。これは、初期化プロパティで、初期化前にしか設定できません。初期化後は、フェールオーバー パートナーが構成されている場合は、プライマリ サーバーから返されたフェールオーバー パートナー名を返します。
アプリケーションでは最後に判別したバックアップ サーバーをキャッシュできますが、この情報は最初に接続を確立したとき、または接続がリセットされたとき (接続がプールされている場合) にだけ更新されることに注意する必要があります。接続が長期にわたると、この情報は古くなることがあります。
接続後は、アプリケーションでこの属性をクエリすることにより、フェールオーバー パートナーの ID を判別できます。プライマリ サーバーのフェールオーバー パートナーが存在しないと、この属性は空文字列を返します。詳細については、「データベース ミラーリングの使用」を参照してください。
SSPROP_INIT_FILENAME
型 : VT_BSTR
R/W : 読み取り/書き込み
説明 : アタッチできるデータベースのプライマリ ファイル名を示します。このデータベースがアタッチされ、接続の既定のデータベースとして使用されます。SSPROP_INIT_FILENAME を使用するには、初期化プロパティ DBPROP_INIT_CATALOG の値にデータベース名を指定する必要があります。指定したデータベース名が存在しない場合は、SSPROP_INIT_FILENAME に指定されているプライマリ ファイル名を確認し、そのデータベースと DBPROP_INIT_CATALOG に指定されている名前とをアタッチします。データベースが以前にアタッチされていた場合は、SQL Server はこれを再アタッチしません。このオプションは、SQL Server 2000 以降に接続する場合にのみ有効です。
SSPROP_INIT_MARSCONNECTION
型 : VT_BOOL
R/W: 読み取り/書き込み
既定値 : VARIANT_FALSE
説明 : 複数のアクティブな結果セット (MARS) が接続で有効かどうかを示します。このオプションは、データベースへの接続が確立される前に、TRUE に設定する必要があります。詳細については、「複数のアクティブな結果セット (MARS) の使用」を参照してください。
SSPROP_INIT_NETWORKADDRESS
型 : VT_BSTR
R/W : 読み取り/書き込み
説明 : DBPROP_INIT_DATASOURCE プロパティで指定されている SQL Server インスタンスを実行するサーバーのネットワーク アドレスです。
SSPROP_INIT_NETWORKLIBRARY
型 : VT_BSTR
R/W : 読み取り/書き込み
説明 : SQL Server インスタンスとの通信に使われるネットワーク ライブラリ (DLL) の名前です。この名前には、パスやファイル拡張子 (.dll) は含めません。
既定値は、SQL Server クライアント構成ユーティリティを使用してカスタマイズできます。
メモ :
このプロパティでは、TCP および名前付きパイプしかサポートされません。このプロパティにプレフィックスを使用した場合、プレフィックスが二重になりエラーが発生します。これは、内部でこのプロパティを使用してプレフィックスが生成されるためです。
SSPROP_INIT_PACKETSIZE
型 : VT_I4
R/W: 読み取り/書き込み
説明 : ネットワーク パケットのバイト単位のサイズです。このパケット サイズ プロパティの値は 512 ~ 32,767 にする必要があります。SQL Native Client OLE DB プロバイダの既定のネットワーク パケット サイズは 4,096 です。
SSPROP_INIT_TAGCOLUMNCOLLATION
型 : BOOL
R/W: 書き込み
既定値 : FALSE
説明 : サーバー側カーソルが使用されているとき、データベースの更新中に使用されます。このプロパティは、クライアントのコード ページではなく、サーバーから取得した照合順序情報を使用してデータにタグをつけます。現在、このプロパティは、分散クエリ プロセスでしか使われていません。これは、分散クエリ プロセスでは変換先データの照合順序が認識されていて、データが適切に変換されるためです。
SSPROP_INIT_TRUST_SERVER_CERTIFICATE
型 : VT_BOOL
R/W: 読み取り/書き込み
既定値 : VARIANT_FALSE
説明 : サーバー証明書の検証の有効化または無効化に使用されます。このプロパティは読み取り/書き込みですが、接続の確立後にこの値の設定が試みられると、エラーが発生します。
このプロパティは、クライアントが証明書の検証を要求するよう構成されている場合は、無視されます。ただし、アプリケーションは、このプロパティを SSPROP_INIT_ENCRYPT と共に使用して、クライアントが暗号化を要求するよう構成されておらず、証明書がクライアント側に準備されていない場合でも、アプリケーションとサーバー間の接続が確実に暗号化されるようにすることができます。
クライアント アプリケーションでは、接続を開いた後にこの属性をクエリして、実際に使用されている暗号化と検証の設定を判断できます。
メモ :
証明書の検証なしで暗号化を使用する場合、パケット スニッフィングに対してある程度の保護は実現できますが、中間者攻撃に対しては保護できません。この場合、サーバー証明書を検証せずに、サーバーに送られるログインとデータの暗号化が行われます。
詳細については、「検証を伴わない暗号化の使用」を参照してください。
SSPROP_INIT_USEPROCFORPREP
型 : VT_I4
R/W: 読み取り/書き込み
既定値 : SSPROPVAL_USEPROCFORPREP_ON
説明 : SQL Server ストアド プロシージャを使用するかどうか。SQL Server の一時ストアド プロシージャを使用して ICommandPrepare インターフェイスをサポートすることを定義します。このプロパティは SQL Server 6.5 に接続するときに限り意味があります。これ以降のバージョンでは、このプロパティは無視されます。
SSPROPVAL_USEPROCFORPREP_OFF: コマンドを準備するときには、一時ストアド プロシージャが作成されません。
SSPROPVAL_USEPROCFORPREP_ON: コマンドを準備するときに、一時ストアド プロシージャが作成されます。セッションが解放されると、作成された一時ストアド プロシージャは削除されます。
SSPROPVAL_USEPROCFORPREP_ON_DROP: コマンドを準備するときに、一時ストアド プロシージャが作成されます。コマンドが ICommandPrepare::Unprepare を使用して準備されていない場合は、ICommandText::SetCommandText を使用してコマンド オブジェクトに新しいコマンドが指定された時点か、コマンドへのアプリケーション参照がすべて解放された時点で、プロシージャは削除されます。
メモ :
SQL Native Client OLE DB プロバイダは SQL Server 6.5 以前のバージョンへの接続をサポートしません。
SSPROP_INIT_WSID
型 : VT_BSTR
R/W : 読み取り/書き込み
説明 : ワークステーションを識別する文字列です。
プロバイダ固有のプロパティ セット DBPROPSET_SQLSERVERDATASOURCEINFO には、SQL Native Client OLE DB プロバイダにより、追加プロパティが定義されます。詳細については、「データ ソース情報のプロパティ」を参照してください。
SQL Native Client OLE DB プロバイダの文字列
SQL Native Client OLE DB プロバイダは、プロバイダの文字列プロパティ値として、ODBC と同様の構文を認識します。プロバイダの文字列プロパティは、OLE DB データ ソースへの接続が確立される時点で、OLE DB 初期化プロパティ DBPROP_INIT_PROVIDERSTRING の値として提供されます。このプロパティは、OLE DB データ ソースへの接続の実装に必要な OLE DB プロバイダ固有の接続データを示します。この文字列内では、要素がセミコロンを使用して区切られます。文字列の最後の要素には、セミコロンを付けて、終端を示す必要があります。各要素は、キーワード、等号文字、初期化時に渡される値で構成されます。次に例を示します。
Server=MyServer;UID=MyUserName;
SQL Native Client OLE DB プロバイダでは、コンシューマはプロバイダの文字列プロパティを使用する必要がありません。コンシューマは、OLE DB または SQL Native Client OLE DB プロバイダ固有の初期化プロパティを使用して、プロバイダ文字列に任意の初期化プロパティを設定できます。
SQL Native Client OLE DB プロバイダで使用できるキーワードの一覧については、「SQL Native Client での接続文字列キーワードの使用」を参照してください。