初期化プロパティと承認プロパティ (ネイティブ クライアント OLE DB プロバイダー)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

重要

SQL Server Native Client (SNAC と略されることがよくあります) は、SQL Server 2022 (16.x) と SQL Server Management Studio 19 (SSMS) から削除されました。 SQL Server Native Client OLE DB プロバイダー (SQLNCLI または SQLNCLI11) とレガシ Microsoft OLE DB Provider for SQL Server (SQLOLEDB) はどちらも、新しい開発には推奨されません。 今後は、新しい Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server に切り替えてください。

SQL Server Native Client OLE DB プロバイダーは、OLE DB の初期化プロパティと承認プロパティを次のように解釈します。

プロパティ ID 説明
DBPROP_AUTH_CACHE_AUTHINFO SQL Server Native Client OLE DB プロバイダーは認証情報をキャッシュしません。

SQL Server Native Client OLE DB プロバイダーは、プロパティ値を設定しようとしたときにDB_S_ERRORSOCCURREDを返します。 DBPROP 構造体の dwStatus メンバーは、DBPROPSTATUS_NOTSUPPORTED を示します。
DBPROP_AUTH_ENCRYPT_PASSWORD SQL Server Native Client OLE DB プロバイダーは、標準の Microsoft SQL Server セキュリティ メカニズムを使用してパスワードを隠します。

SQL Server Native Client OLE DB プロバイダーは、プロパティ値を設定しようとしたときにDB_S_ERRORSOCCURREDを返します。 DBPROP 構造体の dwStatus メンバーは、DBPROPSTATUS_NOTSUPPORTED を示します。
DBPROP_AUTH_INTEGRATED DBPROP_AUTH_INTEGRATEDが NULL ポインター、null 文字列、または 'SSPI' VT_BSTR値に設定されている場合、SQL Server 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 Server Native Client OLE DB プロバイダーは、標準の SQL Server セキュリティ メカニズムを使用してパスワードを隠します。

SQL Server 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 Server Native Client OLE DB プロバイダーは、永続化時に認証情報を暗号化しません。

SQL Server Native Client OLE DB プロバイダーは、プロパティ値を設定しようとしたときにDB_S_ERRORSOCCURREDを返します。 DBPROP 構造体の dwStatus メンバーは、DBPROPSTATUS_NOTSUPPORTED を示します。
DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO SQL Server Native Client OLE DB プロバイダーは、パスワードの画像を含む認証値を保持します (要求された場合)。 暗号化は行われません。
DBPROP_AUTH_USERID SQL Server ログインです。 このプロパティは、SQL Server データベースへのアクセスの承認に SQL Server 認証が選択された場合に使用されます。
DBPROP_INIT_ASYNCH SQL Server 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 Server Native Client OLE DB プロバイダーは、偽装レベルの調整をサポートしていません。

SQL Server Native Client OLE DB プロバイダーは、プロパティ値を設定しようとしたときにDB_S_ERRORSOCCURREDを返します。 DBPROP 構造体の dwStatus メンバーは、DBPROPSTATUS_NOTSUPPORTED を示します。
DBPROP_INIT_LCID SQL Server Native Client OLE DB プロバイダーはロケール ID を検証し、ロケール ID がサポートされていないか、クライアントにインストールされていない場合にエラーを返します。
DBPROP_INIT_LOCATION SQL Server Native Client OLE DB プロバイダーは、プロパティ値を設定しようとしたときにDB_S_ERRORSOCCURREDを返します。 DBPROP 構造体の dwStatus メンバーは、DBPROPSTATUS_NOTSUPPORTED を示します。
DBPROP_INIT_MODE SQL Server Native Client OLE DB プロバイダーは、プロパティ値を設定しようとしたときにDB_S_ERRORSOCCURREDを返します。 DBPROP 構造体の dwStatus メンバーは、DBPROPSTATUS_NOTSUPPORTED を示します。
DBPROP_INIT_PROMPT SQL Server Native Client OLE DB プロバイダーでは、データ ソースの初期化に関するすべてのプロンプト モードがサポートされています。 SQL Server Native Client OLE DB プロバイダーは、プロパティの既定の設定としてDBPROMPT_NOPROMPTを使用します。
DBPROP_INIT_PROTECTION_LEVEL SQL Server Native Client OLE DB プロバイダーは、SQL Server のインスタンスへの接続に対する保護レベルをサポートしていません。

SQL Server Native Client OLE DB プロバイダーは、プロパティ値を設定しようとしたときにDB_S_ERRORSOCCURREDを返します。 DBPROP 構造体の dwStatus メンバーは、DBPROPSTATUS_NOTSUPPORTED を示します。
DBPROP_INIT_PROVIDERSTRING このトピックで後述する SQL Server Native Client OLE DB プロバイダー文字列を参照してください。
DBPROP_INIT_TIMEOUT SQL Server Native Client OLE DB プロバイダーは、指定された秒数以内に SQL Server のインスタンスへの接続を確立できない場合、初期化時にエラーを返します。

プロバイダー固有のプロパティ セット DBPROPSET_SQLSERVERDBINITでは、SQL Server Native Client OLE DB プロバイダーによって、これらの追加の初期化プロパティが定義されます。

プロパティ ID 説明
SSPROP_AUTH_OLD_PASSWORD 型: VT_BSTR

R/W:Write

既定値はVT_EMPTY

説明:現在のパスワードまたは期限切れのパスワード。 詳細については、「プログラムによるパスワードの変更」を参照してください。
SSPROP_INIT_APPNAME 型: VT_BSTR

R/W:読み取り/書き込み

説明:クライアント アプリケーション名。
SSPROP_INIT_AUTOTRANSLATE 型: VT_BOOL

R/W:読み取り/書き込み

既定値はVARIANT_TRUE

説明:OEM/ANSI 文字の変換。

VARIANT_TRUE: SQL Server Native Client OLE DB プロバイダーは、クライアントとサーバーのコード ページ間で拡張文字を照合する際の問題を最小限に抑えるために Unicode を使用して変換することで、クライアントとサーバーの間で送信される ANSI 文字列を変換します。

クライアント DBTYPE_STRデータは、SQL Servercharvarchar、または text クライアント ANSI コード ページ (ACP) を使用して文字から Unicode に変換され、サーバーの ACP を使用して Unicode から文字に変換されます。

SQL Server の char 型、varchar 型、または text 型のデータをクライアントの DBTYPE_STR 変数に送信する場合は、サーバーの ACP に基づいて文字が Unicode に変換され、その後で、クライアントの ACP に基づいて Unicode から文字に変換されます。

これらの変換は、SQL Server 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 Server Native Client OLE DB プロバイダーは文字変換を実行しません。

SQL Server Native Client OLE DB プロバイダーは、クライアント ANSI 文字DBTYPE_STRサーバー上の charvarchar、または text 変数、パラメーター、または列に送信されるデータを変換しません。 また、サーバーからクライアントの 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 と ActiveX Data Object (ADO) アプリケーション間のデータ型の互換性を確保します。 既定値の 0 が使用されている場合、データ型の処理では、プロバイダーが既定で使用するデータ型が使われます。 値 80 が使用されている場合、データ型の処理では、SQL Server 2000 (8.x) のデータ型しか使われません。 詳細については、「 SQL Server 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 はこれを再アタッチしません。
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 Server 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 を使用してコマンド オブジェクトに新しいコマンドが指定されたとき、またはコマンドへのアプリケーション参照がすべて解放されたときに、プロシージャは削除されます。
SSPROP_INIT_WSID 型: VT_BSTR

R/W:読み取り/書き込み

説明:ワークステーションを識別する文字列。

プロバイダー固有のプロパティ セット DBPROPSET_SQLSERVERDATASOURCEINFOでは、SQL Server Native Client OLE DB プロバイダーによって追加のプロパティが定義されます。詳細については、「 Data ソース情報のプロパティ を参照してください。

SQL Server Native Client OLE DB プロバイダーの文字列

SQL Server Native Client OLE DB プロバイダーは、プロバイダー文字列プロパティ値で ODBC に似た構文を認識します。 プロバイダーの文字列プロパティは、OLE DB データ ソースへの接続が確立される時点で、OLE DB 初期化プロパティ DBPROP_INIT_PROVIDERSTRING の値として提供されます。 このプロパティは、OLE DB データ ソースへの接続の実装に必要な OLE DB プロバイダー固有の接続データを示します。 この文字列内では、要素がセミコロンを使用して区切られます。 文字列の最後の要素には、セミコロンを付けて、終端を示す必要があります。 各要素は、キーワード、等号文字、初期化時に渡される値で構成されます。 次に例を示します。

Server=MyServer;UID=MyUserName;  

SQL Server Native Client OLE DB プロバイダーでは、コンシューマーはプロバイダー文字列プロパティを使用する必要はありません。 コンシューマーは、OLE DB または SQL Server Native Client OLE DB プロバイダー固有の初期化プロパティを使用して、プロバイダー文字列に反映される初期化プロパティを設定できます。

SQL Server Native Client OLE DB プロバイダーで使用できるキーワードの一覧については、「 SQL Server Native Client での接続文字列キーワードの使用を参照してください。

参照

データ ソース オブジェクト (OLE DB)