名前付きパイプを使用して、Windows 2000 の下で動作する SQL Server 2000に接続する場合、SQL
Server 2000にアクセスする以前に\\<SQL Server 2000のコンピュータ名>\IPC$
に接続する権限が必要です。
たとえば、下記のような環境を用意します
| ワークグループ環境(同一セグメント) |
| コンピュータ名 |
ユーザー状況 |
| PERTH |
UserAを作成 |
| BRISBANE |
Guest無効 |
|
上記の環境では、PERTHのクエリアナライザでBRISBANE のSQL Server 2000にアクセスした場合、エラーが発生します(画面6)。
| ■ 画面6 エラーメッセージ |
 |
 |
上記のエラーは画面5と同じエラーであり、[DBNETLIB]でのエラーメッセージとして発生しています。Net-Libraryを統一すればこのエラーは解消される場合もありますが、名前付きパイプで統一している今回のケースでは、下記に紹介しているユーザーが原因で発生する場合もありますし、この他にも実際にNet-Libraryを実現しているDLLファイルの破損等も考えられます。
一般的に、ワークグループ環境ではIPC$ に接続するために、次の条件が必要です。
・同じユーザーアカウント(ユーザー名、パスワード)が存在する。
・GUESTアカウントが有効になっている。
したがって今回の場合、BRISBANEコンピュータに対して同じユーザーアカウントでユーザーを作成したり、GUESTユーザーを有効にした場合に、初めてSQL
Server 2000へのアクセスが可能となります。結果は下記のようになります。
| |
ユーザー設定 |
SQLServer認証 |
Windows認証 |
| 1 |
UserAを作成 |
ログインアカウント、パスワードが合致する場合にアクセス可能 |
UserAに関するWindows認証アカウントが存在する場合にアクセス可能 |
| 2 |
Guest有効 |
Guestに関するWindows認証アカウントが存在する場合にアクセス可能 |
|
たとえば、PERTHのクエリアナライザでBRISBANE のSQL Server 2000にWindows認証でアクセスした場合を考えてみましょう。GUESTアカウントを有効にし、そのGUESTに対するWindows認証アカウントを作成しなかった場合は画面7のエラーメッセージが表示されます。UserAを作成し、そのUserAに対するWindows認証アカウントを作成しなかった場合は画面8のエラーメッセージが表示されます。
これらのエラーメッセージから、上記のWindows認証に関する検証は簡単に行うことが可能です。
| ■ 画面7 エラーメッセージ |
 |
 |
| ■ 画面8 エラーメッセージ |
 |
 |
|