適用対象: SQL Server
注
トラブルシューティングを開始する前に、 前提条件を確認し チェックリストを確認してください。
この記事では、ユニバーサル データ リンク (UDL) ファイルを作成し、さまざまなプロバイダーを使用して、ファイルを介して SQL Server インスタンスへの接続をテストする方法について説明します。
UDL ファイルを作成する
注
UDL ファイルを使用すると、完全なアプリケーションに関係なく、任意のバックエンド データベースへのオブジェクト リンクおよび埋め込みデータベース (OLE DB) プロバイダーの接続をテストできます。 UDL ファイルを保存すると、整形式の接続文字列が生成されます。これを使用して、アプリケーションの接続文字列を構築したり、さまざまなプロパティを設定する方法を確認したりできます。 文字列を取得するには、メモ帳でファイルを開きます。
OLE DB プロバイダーをテストする UDL ファイルを作成するには、次の手順に従います。
エクスプローラーでファイル拡張子を表示するには、次の手順に従います。
Startを選択し、「エクスプローラー オプション」と入力。
[ View ] タブを選択し、[既知のファイルの種類の拡張子を表示する をオフにして OK 選択します。
UDL ファイルを作成するフォルダーに移動します。 たとえば、 C:\temp です。
新しいテキスト ファイル ( sqlconn.txt など) を作成し、拡張機能の名前を .txt から .udl に変更。 ([ を選択]はい ファイル名拡張子の変更に関する警告メッセージに表示されます)。
次の PowerShell スクリプトを使用して、%temp% フォルダーに sqlconn.udl を作成することもできます。
clear $ServerName = "(local)" $UDL_String = "[oledb]`r`n; Everything after this line is an OLE DB initstring`r`nProvider=MSOLEDBSQL.1;Integrated Security=SSPI;Persist Security Info=False;User ID=`"`";Initial Catalog=`"`";Data Source=" + $ServerName + ";Initial File Name=`"`";Server SPN=`"`";Authentication=`"`";Access Token=`"`"" Set-Content -Path ($env:temp + "\sqlconn.udl") -Value $UDL_String -Encoding Unicode #open the UDL Invoke-Expression ($env:temp + "\sqlconn.udl")
SQL Server OLE DB ドライバーを使用して接続をテストする
Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL) は、最新の SQL Server OLE DB ドライバーです。 ドライバーには、TLS 1.2 と 1.3、 MultiSubnetFailover、Azure 認証方法 (Microsoft Entra ID) などの新機能があります。 新しい SQL Server データベースには、このドライバーをお勧めします。
Microsoft OLE DB Provider for SQL Server (SQLOLEDB) は、従来の OLE DB 接続プロバイダーです。 これは Windows に組み込まれており、TLS 1.2 または 1.3 チャネル バインドを必要とするように構成されていない任意のバージョンの SQL Server に接続できます。
MICROSOFT OLE DB ドライバーまたは SQL Server プロバイダーを使用して接続をテストするには、次の手順に従います。
UDL ファイルを開きます。
[ プロバイダー ] タブを選択し、アプリケーションで使用する OLE DB ドライバーまたはプロバイダーを選択し、[ 次へ] を選択します。
[ Connection タブで、ネットワーク プロトコル、完全修飾ドメイン名 (FQDN)、およびポート番号を Select またはサーバー名を入力を指定します。 たとえば、
tcp:SQLProd01.contoso.com,1433
のようにします。注
この方法でサーバー名とポートを入力すると、接続を妨げる可能性のある一般的な問題 (SQL Server Browser サービスの問題など) が回避されます。
[ Connection タブに他のプロパティを入力します。
注
ほとんどの接続テストでは、データベース名を入力する必要はありません。
[接続テスト] を選択します。
他のタブを選択し、他のドライバー設定を調べることもできます。 接続テストが完了したら、OK を選択して接続文字列をファイルに保存します。
Microsoft OLE DB Provider for ODBC Drivers を使用して接続をテストする
Microsoft OLE DB Provider for ODBC Drivers を使用して Open Database Connectivity (ODBC) ドライバーをテストするには、次の手順に従います。
UDL ファイルを開きます。
Provider>Microsoft OLE DB Provider for ODBC Drivers>Next を選択します。
[ Connection ] タブでは、次のいずれかの方法を使用してデータのソースを指定し、その他のプロパティを入力できます。
[データ ソース名の使用] フィールドに値を入力します。
Driver={ODBC Driver 17 for SQL Server};Server=SQLProd01;Database=Northwind;Trusted_Connection=Yes
などの DSN レス接続文字列を入力します。
[接続テスト] を選択します。
64 ビット コンピューターで 32 ビット プロバイダーをテストする
64 ビット オペレーティング システムで 32 ビット プロバイダーの接続をテストするには、次の手順に従います。
コマンド プロンプト ウィンドウで、次のコマンドを実行して、32 ビット コマンド プロンプトを開きます。
%windir%\SysWoW64\cmd.exe
次のコマンドを実行して UDL ファイルを開きます。
C:\temp\test.udl
[プロバイダー] タブに Microsoft Jet 4.0 OLE DB Provider が表示された場合は、32 ビット ダイアログが正常に読み込まれ、32 ビット プロバイダーを選択して接続をテストできるようになりました。
UDL ファイルを起動する
UDL ファイルをダブルクリックして起動します。 次に、UDL ファイルを起動するときに使用される基になるプロセスについて説明します。
UDL ファイル UI は 、OLEDB32.DLL によって提供され、 RUNDLL32.EXEでホストされます。
32 ビット オペレーティング システムの場合、または 64 ビット オペレーティング システム上の 64 ビット プロバイダーの場合は、次のコマンドを使用します (
C:\temp\test.udl
想定)。Rundll32.exe "C:\Program Files\Common Files\System\OLE DB\oledb32.dll",OpenDSLFile C:\temp\test.udl
64 ビット オペレーティング システム上の 32 ビット プロバイダーの場合は、次のコマンドを使用します。
C:\Windows\SysWOW64\Rundll32.exe "C:\Program Files (x86)\Common Files\system\Ole DB\oledb32.dll",OpenDSLFile C:\temp\test.udl
.udl ファイル拡張子は、最初のコマンドにマップされます。 64 ビット オペレーティング システム上の 32 ビット プロバイダーの場合は、32 ビット コマンド プロンプトを実行した後、 START C:\TEMP\TEST.UDL
を実行して 32 ビット プロバイダーをテストすることで、作業を簡略化できます。 必要に応じて、32 ビット コマンドを使用するファイル拡張子マッピングを作成できます。
32 ビット UDL32 ファイル拡張子マッピングを作成する
64 ビット オペレーティング システムで 32 ビット プロバイダーを頻繁に使用する場合は、次の手順を使用して、新しいファイル拡張子 ( .udl32 など) をマップして 32 ビット UDL ダイアログを起動できます。
Von Bedeutung
このセクション、メソッド、またはタスクには、レジストリを変更する方法を示す手順が含まれています。 ただし、レジストリを誤って変更した場合、重大な問題が発生する可能性があります。 したがって、これらの手順を注意深く守ってください。 保護のために、レジストリを変更する前にレジストリをバックアップして、問題が発生した場合にレジストリを復元できるようにします。 レジストリのバックアップと復元方法の詳細は、「Windows のレジストリのバックアップおよび復元の方法」を参照してください。
次のスクリプトをメモ帳にコピーし、 udl32.regとして保存します。
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.UDL32] @="ft000001" [HKEY_CLASSES_ROOT\ft000001] @="Microsoft Data Link 32" "BrowserFlags"=dword:00000008 "EditFlags"=dword:00000000 [HKEY_CLASSES_ROOT\ft000001\shell] @="open" [HKEY_CLASSES_ROOT\ft000001\shell\open] [HKEY_CLASSES_ROOT\ft000001\shell\open\command] @="C:\\Windows\\SysWOW64\\Rundll32.exe \"C:\\Program Files (x86)\\Common Files\\system\\Ole DB\\oledb32.dll\",OpenDSLFile %1" [HKEY_CLASSES_ROOT\ft000001\shell\open\ddeexec]
.regファイルをダブルクリックしてレジストリ キーを作成すると、UDL32ファイルを自動的に起動するのに役立ちます。
udl32 ファイル拡張子を持つファイルを作成します。 たとえば、 C:\temp\test.udl32 です。
test.udl32 をダブルクリックして、32 ビット UDL ダイアログを起動します。 たとえば、次のようなダイアログが表示される場合があります。
接続の問題のトラブルシューティングに関するヒント
次の方法を使用して、接続が失敗した理由を確認できます。
- プロバイダーを変更します。
- プロトコルを変更します。 たとえば、「
tcp:
」、「np:
」、「lpc:
」のように指定します。 - 完全なドメイン サフィックスの有無に関係なく、または IP アドレスのみを使用して接続をテストします。
- ポート番号を削除し、インスタンス名を使用して SQL Server Browser サービスをテストします。
上記の各方法について、1 つの組み合わせが機能し、別の組み合わせが失敗した場合、問題に関する手掛かりが得られます。 たとえば、2 番目のメソッドを使用する場合、lpc:
が機能し、tcp:
が機能しない場合は、SQL Server 構成マネージャーで TCP プロトコルを有効にしてみてください。
関連項目
注
この記事で問題が解決しない場合は、 SQL Server の接続に関する問題のトラブルシューティングで 詳細を確認できます。