Microsoft Dynamics SL にサインインしようとすると、"System Message 5003 - 指定されたサーバー データベースを開けません" エラー
この記事では、Microsoft Business Solutions - Insider または Microsoft Dynamics SL にサインインしようとしたときに発生するエラーの解決策について説明します。
適用対象: Microsoft Dynamics SL
元の KB 番号: 875704
現象
Microsoft Business Solutions - Insider または Microsoft Dynamics SL にサインインしようとすると、次のエラー メッセージが表示されます。
システム メッセージ 5003 - 指定されたサーバー データベースを開くことができません
原因
この問題は、次の 1 つ以上の理由で発生します。
原因 1
Microsoft Dynamics SL システム データベースのドメイン テーブルのサーバー名の値が、Microsoft Dynamics SL データベースを含むSQL Serverのインスタンスの名前と一致しません。 「解決策 1」を参照してください。
原因 2
クライアント ネットワーク ユーティリティのエイリアスは、古いサーバーを指します。 クライアント ネットワーク ユーティリティのエイリアスが正しいことを確認します。 「解決策 2」を参照してください。
原因 3
名前付きパイプ プロトコルと TCP/IP プロトコルは、クライアント ネットワーク ユーティリティでは有効になっていません。 「解決策 3」を参照してください。
原因 4
新しい Microsoft Dynamics SL アプリケーション データベースにサインインしようとすると、データベースの名前が数値で始まると、エラーが表示されます。 SQL Serverには制限があるため、アルファベット文字を使用して開始するにはデータベース名が必要です。 「解決策 4」を参照してください。
原因 5
Windows アクセス許可が不足しているため、サーバーへの名前付きパイプ接続を確立できません。 「解決策 5」を参照してください。
原因 6
TCP/IP が正しく構成されていません。 「解決策 6」を参照してください。
原因 7
データベースは Single-User モードに設定されます。 「解決策 7」を参照してください。
原因 8
エラーが受信されているコンピューター上の Capicom.dll ファイルが破損しているか、バージョンが正しくありません。 「解決策 8」を参照してください。
原因 9
SQL Server上の Windows ファイアウォールによって、SQL Server/SL データベースへのアクセスがブロックされています。 「解決策 9」を参照してください。
原因 10
Microsoft Dynamics SL では、Windows 認証セキュリティ モデルを使用します。 ただし、Microsoft Dynamics SL のユーザー ID を Windows のユーザー ID にリンクしていません。 さらに、SQL Serverの Microsoft Dynamics SL システム データベースに同じユーザー ID を手動で作成しました。 「解決策 10」を参照してください。
原因 11
Microsoft Dynamics SL ユーザー アカウントは、Microsoft Dynamics SL の ADMINISTRATORS グループのメンバーです。 ただし、関連する Windows ドメイン ユーザー アカウントは、SQL Serverの sysadmin ロールのメンバーではありません。 「解像度 11」と「解像度 12」を参照してください。
原因 12
Windows Server 2008 R2 の Windows ファイアウォールによって、SQL Server/SL データベースへのアクセスがブロックされています。 「解決策 13」を参照してください。
原因 13
[データベース名] ボックスでアプリケーション データベースを選択すると、[データベースの検索 (98.000.01)] 画面で発生します。 「解決策 14」を参照してください。
原因 14
[サーバー名] と [データベース名] を選択した後で [OK] を 選択すると、データベースの検索 (98.000.01) 画面で発生します。 「解決策 15」を参照してください。
解決方法
この問題を解決するには、適切な解決策を使用します。
解決方法 1
ドメイン テーブルのサーバー名の値を確認して、値が Microsoft Dynamics SL インストール先のSQL Serverのインスタンスの名前と一致することを確認します。
SQL Server Management Studioで、Microsoft Dynamics SL システム データベースで次のステートメントを実行します。
Select servername, * from domain
サーバー名の値がSQL Serverのインスタンス名と一致しない場合は、次のステートメントを実行してサーバー名の値を更新します。
UPDATE Domain SET ServerName = '<Nameofserver>' --Replace the <Nameofserver> placeholder with the instance name of SQL Server.
データベース メンテナンスにサインインします。
[ データベースの更新 ] タブで、Microsoft Dynamics SL システム データベースと関連するすべてのアプリケーション データベースを選択し、[ ビューの更新] を選択します。
解決方法 2
古いサーバーを参照するエイリアスを削除します。 これを行うには、次の手順に従います。
- [ スタート] を選択し、[ 実行] を選択し、「 cliconfg」と入力し、 Enter キーを押します。
- [ エイリアス ] タブで、一覧表示されているすべてのエイリアスが正しく、現在のサーバー用であることを確認します。 いずれかのエイリアスが古いサーバーを参照している場合は、ポインターを使用して、削除するサーバーにフォーカスを置き、[削除] を選択 します。
- [OK] を選択します。
32 ビット コンピューターの場合:
実行の種類cliconfg を開始>>する
64 ビット コンピューターの場合:
- 参照先
C:\Windows\SysWOW64
- そのフォルダーにある cliconfg.exe を実行する
解決策 3
クライアント ネットワーク ユーティリティで名前付きパイプと TCP/IP が有効になっていることを確認します。
[ スタート] を選択し、[ 実行] を選択し、「 cliconfg」と入力し、 Enter キーを押します。
[ 全般 ] タブで、名前付きパイプ プロトコルと TCP/IP プロトコルが [有効なプロトコル] に順番に表示されることを確認します。 これらのプロトコルが有効になっていない場合は、ポインターを使用して各プロトコルにフォーカスを置き、[ 有効] を選択します。
名前付きパイプ プロトコルが一覧の最初のプロトコルでない場合は、名前付きパイプ プロトコルを選択し、方向キーを使用して移動します。
[OK] を選択します。
注:
通常、どのプロトコルを最初に読み込む必要があるかに関する設定の推奨事項はありません。 ネットワーク構成によっては、1 つのプロトコルが他のプロトコルよりも適切に動作する場合があります。
32 ビット コンピューターの場合:
- 実行の種類cliconfg を開始>>する
- 名前付きパイプと TCP/IP の両方が有効になっていることを確認します。
64 ビット コンピューターの場合:
C:\Windows\SysWOW64
を参照します。- そのフォルダーにある cliconfg.exe を実行する
- 名前付きパイプと TCP/IP の両方が有効になっていることを確認します。
解決策 4
既存の Microsoft Dynamics SL アプリケーションとシステム データベースのバックアップを作成し、アルファ データベース名を使用して同じサーバーにデータベースを復元します。
注:
手順 4 で、データベースを同じSQL Serverに復元していることを確認します。
解決策 5
Windows でユーザーに十分なアクセス許可を付与します。
注:
SQL Serverレジストリ設定を読み取って名前付きパイプ接続を確立することはできません。これは、ユーザーが Windows で十分なアクセス許可を持っていないためです。 ネットワーク システム管理者に問い合わせてください。
解決策 6
TCP/IP が正しく構成されていることを確認します。
DHCP を使用して IP アドレスを割り当てる場合は、エラーを生成するコンピューターが、静的 IP アドレスを割り当てるのではなく、DHCP サーバーにアドレスの割り当てを許可していることを確認します。
ワークステーションがサーバーに ping を実行できることを確認します。 これを行うには、次の手順に従います。
[ スタート] を選択し、[ 実行] を選択し、「 cmd」と入力し、 Enter キーを押します。
DOS プロンプトで、「ping <ServerName」と>入力するか、「ping ServerIPAddress」<と入力します>。
注:
ServerName> プレースホルダーを<サーバーの名前に置き換えます。 ServerIPAddress> プレースホルダーを<サーバーの IP アドレスに置き換えます。
静的 DNS 解決を使用する場合は、SQL Serverを実行しているサーバーを、ネットワーク - TCP/IP プロパティ - DNS 構成にある DNS サーバー検索順序の一覧に追加するか、ワークステーション コンピューター上のホスト ファイルに追加します。 ネットワーク システム管理者に問い合わせてください。
解決策 7
[データベースのプロパティ] で [シングル ユーザー アクセス] をオフにします。
- SQL Server Management Studio を開きます。
- [ データベース] を展開します。
- Microsoft Dynamics SL アプリケーション データベースを右クリックし、[プロパティ] を選択 します。
- [オプション] ページで、[アクセスの制限] の値として [シングル ユーザー] が選択されていないことを確認します。
解決策 8
Capicom.dll ファイルのバージョンを確認し、ファイルを手動で登録します。
次のパスで Capicom.dll ファイルを見つけます。
32 ビット オペレーティング システム:
<SystemDrive>:\Windows\System32
64 ビット オペレーティング システム:
<SystemDrive>:\Windows\SysWOW64
注:
<SystemDrive> は、Microsoft Windows がインストールされているドライブを表します。
Capicom.dll ファイルのバージョンが 2.1.0.1 であることを確認します。 これを行うには、次の手順に従います。
- Capicom.dll ファイルを右クリックし、[プロパティ] を選択 します。 [ capicom.dll プロパティ ] ダイアログ ボックスが表示されます。
- [ バージョン ] タブで、[ ファイル バージョン] の値が 2.1.0.1 であることを確認します。
- [OK] を選択します。
Capicom.dll ファイルを右クリックし、[ 開く] を選択します。
[Windows] ダイアログ ボックスで、[一覧からプログラムを選択] を選択し、[OK] を選択します。
[ 開く ] ダイアログ ボックスで、[ 参照] を選択します。
次のフォルダーを見つけて開きます。
32 ビット オペレーティング システム: 64 ビット オペレーティング システム:
<SystemDrive>:\Windows\System32
<SystemDrive>:\Windows\SysWOW64
Regsvr32.exe ファイルをダブルクリックし、[OK] を選択 します。
次のメッセージが表示されたら、[ OK] を選択します 。
RegSvr32 - SystemDrive の DllRegisterServer :\windows\system32\capicom.dll 成功しました。
解決策 9
SQL Serverでポート 1433 を開きます。 これを行うには、次の手順に従います。
- コントロール パネルで、[Windows ファイアウォール] を選択します。
- [ 例外 ] タブで、[ ポートの追加] を選択します。
- 次の設定を指定します。
- 名前: 1433
- ポート番号: 1433
- [TCP] を選択します。
- [OK] を 2 回クリックします。
解像度 10
SQL で作成したユーザー ID を削除し、Microsoft Dynamics SL ユーザー ID を Windows ユーザー ID にリンクします。 これを行うには、次の手順に従います。
SQL で作成したユーザー ID を削除します。
- SQL Server Management Studioで、[データベース] を展開し、Microsoft Dynamics SL システム データベースを展開し、[セキュリティ] を展開して、[ユーザー] を展開します。
- 作成したユーザー ID を右クリックし、[削除] を選択 します。
- [ オブジェクトの削除 ] ダイアログ ボックスで、[ OK] を選択します。
Microsoft Dynamics SL ユーザー ID を Windows ユーザー ID にリンクします。
SYSADMIN ユーザー ID を使用して Microsoft Dynamics SL にサインインします。
ナビゲーション ウィンドウで、[管理] を選択 します。
[ 管理 の詳細] ウィンドウの [ セキュリティ] で、[ ユーザー メンテナンス] を選択します。
[ ユーザー ID ] ボックスに、Microsoft Dynamics SL にサインインできないユーザー ID を入力します。
[詳細] タブの [Windows ユーザー名] ボックスに「DomainName UserName」>と入力<します>。<\
注:
DomainName プレースホルダーを <Windows ドメイン名に置き換え、UserName> プレースホルダーを <Windows ユーザー ID に置き換>えます。
[ 保存] を選択し、 ユーザー メンテナンス (95.260.00) 画面を閉じます。
解像度 11
Microsoft Dynamics SL データベースの所有権とセキュリティを同期します。 これを行うには、次の手順に従います。
- データベースメンテナンス (98.290.00) 画面を開きます。
- [宛先SQL Server名前] ボックスに、サーバーの名前を入力します。
- [ ログイン ID ] ボックスに「 sa」と入力します。
- [ パスワード ] ボックスに、SYSADMIN ユーザーのパスワードを入力します。
- [接続] を選択します。
- [ データベースの更新 ] タブの [ システム データベース名 ] ボックスで、 システム データベースを選択します。
- [データベース] 列 で 、アプリケーション データベースを選択します。
- [ 更新シナリオ ] 領域で、[ すべての所有権の同期] & [セキュリティ] を選択します。
- [ データベースの更新] を選択します。
- データベースメンテナンス (98.290.00) 画面を閉じます。
解決策 12
Microsoft Dynamics SL のすべてのユーザーを ADMINISTRATORS グループに削除して読み取ります。 これを行うには、次の手順に従います。
注:
この解決策では、管理アクセス許可を持つ 1 つ以上の Microsoft Dynamics SL ユーザー アカウントが Microsoft Dynamics SL にサインインできることを前提としています。
- 管理アクセス許可を持つ Microsoft Dynamics SL ユーザー アカウントにリンクされている Windows ドメイン ユーザー アカウントを使用して、ドメインにサインインします。
- [ 管理] を選択します。
- [ システム マネージャー ] ウィンドウで、[セキュリティ] の [ グループメンテナンス ] を選択 します。
- [ グループ ID ] ボックスに「 ADMINISTRATORS」と入力し、Tab キーを押 します。
-
注:
[詳細] 領域に一覧表示されているユーザー ID。
- 現在サインインしているユーザー ID を除き、一覧からすべてのユーザーを削除します。
- [保存] を選択します。
- ユーザー ID を追加し、[保存] を選択 します。
- グループメンテナンス (95.280.00) 画面を閉じます。
解決策 13
ポート番号 1433 と 1434 を開きます。 これを行うには、次の手順に従います。
- SQL Serverを実行しているコンピューターで、[スタート] を選択し、[管理ツール] をポイントし、[セキュリティが強化された Windows ファイアウォール] を選択します。
- [受信規則] を右クリックし、[新しい規則] を選択し、[次へ] を選択します。
- [ すべてのプログラム] を選択し、[ 次へ] を選択します。
- [次へ] を選択し、クリックして [パブリック チェック] ボックスをオフにし、[次へ] を選択します。
- [名前] ボックスに「SQL SERVER」と入力し、[完了] を選択します。
- [ 受信規則 ] ウィンドウで、[ SQL SERVER] を右クリックし、[ プロパティ] を選択します。
- [プロトコルとポート] タブの [プロトコルの種類] ボックスで [TCP] を選択します。
- [ ローカル ポート ] ボックスで、[ 特定のポート] を選択し、「 1433」と入力します。
- [Apply]\(適用\) を選択し、次に [OK] を選択します。
- [受信規則] を右クリックし、[新しい規則] を選択し、[次へ] を選択します。
- [ すべてのプログラム] を選択し、[ 次へ] を選択します。
- [次へ] を選択し、クリックして [パブリック チェック] ボックスをオフにし、[次へ] を選択します。
- [名前] ボックスに「SQL SERVER BROWSER」と入力し、[完了] を選択します。
- [ 受信規則 ] ウィンドウで、[ SQL SERVER ブラウザー] を右クリックし、[ プロパティ] を選択します。
- [プロトコルとポート] タブの [プロトコルの種類] ボックスで [UDP] を選択します。
- [ ローカル ポート ] ボックスで、[ 特定のポート] を選択し、「 1434」と入力します。
- [ 適用] を選択し、[ OK] を 選択して [ SQL SERVER ブラウザーのプロパティ ] ダイアログ ボックスを閉じます。
解決策 14
[データベース名] ボックスで適切なシステム データベース名 を選択し、[ OK] を選択します。
解決策 15
SQL Server クライアント ネットワーク ユーティリティの SQL サーバーにエイリアスを再度追加します。
32 ビット コンピューターの場合:
- 実行の種類cliconfg を開始>>する
- 名前付きパイプと TCP/IP の両方が有効になっていることを確認します。
- [ エイリアス ] タブで、[ 追加] を選択します。
- [サーバー エイリアス] に、[ データベースの検索 ] 画面で入力するとおりにサーバー名を入力します。
- それ以外はすべて既定値のままにします。 (名前付きパイプエイリアスとして既定値にする必要があります)
- [OK] を選択します。
- [適用] を選択します。
- [OK] を選択します。
64 ビット コンピューターの場合:
C:\Windows\SysWOW64
に移動します。- そのフォルダーにある cliconfg.exe を実行する
- 名前付きパイプと TCP/IP の両方が有効になっていることを確認します。
- [ エイリアス ] タブで、[ 追加] を選択します。
- [サーバー エイリアス] に、[ データベースの検索 ] 画面で入力するとおりにサーバー名を入力します。
- それ以外はすべて既定値のままにします。 (名前付きパイプエイリアスとして既定値にする必要があります)
- [OK] を選択します。
- [適用] を選択します。
- [OK] を選択します。
詳細情報
ネットワークの問題を除外するには、エラー メッセージが表示されるコンピューターでテスト ODBC 接続を作成します。 これを行うには、次の手順に従います。
- コントロール パネルで、[管理ツール] を選択し、[データ ソース (ODBC)] を選択します。
- [ユーザー DSN] タブで、[追加] を選択し、一覧の末尾までスクロールし、[SQL Server] を選択して、[完了] を選択します。
- 次の設定を指定します。
- 名前: TEST
- 説明: TEST
- サーバー: 接続するSQL Serverを入力します。
- [次へ] を選択します。
- Windows 認証または SQL 認証を選択し、必要な場合は sa ユーザー名とパスワードを入力します。
- [ 次へ ] を 2 回選択し、[ 完了] を選択し、[ データ ソースのテスト] を選択します。