ワークグループ環境にあるSQL SERVER 2005 EXPRESSでWINDOWS認証を使ってネットワーク接続する際の注意点
知り合いに頼まれてワークグループ環境にあるPCにSQL SERVER 2005 EXPRESSを設定する事になりました。インストール自体は問題なく済んだのですが、何故かWINDOWS認証ではネットーワーク越しのアクセスが出来ません。結局、あれこれ悩んだ末にようやく解決しました。振り返ってみればしごく簡単な事だったのですが・・・。
この問題、意外とハマっておられる方が多いようでしたので備忘録として残しておきたいと思います。
インストール先のOSはWINDOWS XP Pro SP3。PCは新規購入でまっさらな状態。PCへのユーザーアカウント登録、IISの追加インストールとファイルの共有設定をウィザードで行った後にSQL SERVER 2005 Expressをインストールしました。
普段会社のドメイン環境にあるPCで仕事をしているのでワークグループ環境でのセキュリティー設定に関してはあまり詳しくありません。ですが、クライアントとして使うPCが全てXPとの事だったのでWINDOWS認証でいいだろうと考えインストールしたのが事の始まり。
SQLSEVER Expressエディションはデフォルトでローカルのみの接続になっているのでネットワーク接続を可能に設定。TCP1433ポートの設定とファイヤーウォールの例外設定。サーバークライアント双方に同一ユーザーを登録し、SQLSERVERにおける権限も設定。この辺りはいつも通り。さて、じゃあ、ひとまずテストしてみましょうか、という事でクライアントPCのODBCでデータソースの設定を行いアクセスするも
繋がらない・・・
なんで?やはりワークグループ環境ではSQLSERVER認証でないとだめなのだろうか。いや、そんなはずはない、と悩む事小一時間。その後、同じような現象の書き込みはないかとGoogle検索をかける事数時間。何度やっても繋がらない・・・。
いや厳密にいえば、繋がらないのではなくアクセスが拒否されるのです。何故か、「(コンピューター名)\guest はアクセスできません。」といった類のメッセージが出ます。
VISUAL STUDIOのデータソースウィーザードではキチンとSQLSEVER のインスタンスが見えているので(ただしアクセスは出来ず)これはやはりユーザー認証周りの問題だ、という事で間違いはないみたいです。この時点ですでに夜中を過ぎていたため、頭が思うように働きません。こういうときは一度寝てからやってみる方が良い、という事で次の日に持ち越しました。
さて、翌日再びチャレンジ。検索していてひとつ面白い事に気づきました。この現象で悩んだ事のある方が以外と多いという事。そして根本的な解決には至っていない事(解決したとの書き込みがない事)。
一方で、問題のない人にとっては「なんで繋がらないのか、そのほうが不思議だ」といった感想を持たれているという事。
両者の間には明確な違いがあるはず。それがわかれば答えが導きだされるはずです。そこで、昨夜の現象を分析してみる事にしました。
クライアントPCにログオンしていたのはアドミニストレーター権限のあるユーザー。それが、ODBCでは「guest」となっていました。冷静になって考えてみればおかしな話です。実際にこの現象にあわれた方の中には、SQLSEVER上にguestアカウントを作り、権限を与える事によってこの問題を回避した方がおられるようです。その方の環境ではそれで事足りたのだと思いますが、本来セキュリティーのために設定する訳ですから、本末転倒な事になってしまいます。
そこで検索ワードを変えさらに検索してみる事にしました。
「ワークグループ」「WINDOWS認証」「guest」
辺りを使って検索してみたところ、ついにヒントとなる説明を見つけました。(こちら)簡単に言いますと、
「簡易ファイルの共有」機能を有効にするとレジストリに変更が加えられネットワーク経由でのアクセスを強制的にGuestアカウントとみなす。結果としてアクセスするユーザはすべてGuestとして認証される
というものです。これでなぞは解けました。ここがポイントに違いありません。
クライアント側からguestとしてアクセスされていたのではなく、サーバー側がguestとみなしていたという事でした。確か、新規PCの設定時にファイル共有設定を行っていたはず。この時にウィザードを使用して設定したのでこの時「簡易ファイルの共有」機能が有効になったのでした。
ドメイン環境の場合、そもそも「簡易ファイルの共有」機能は使用できませんのでこの辺りに気付かなかったのもいたしかたなし、というところです。そこで早速、「フォルダオプション」→「表示」→「簡易ファイルの共有を使用する(推奨)」に入っていたチェックをはずします。
その後、クライアント側からODBCを設定、アクセスしてみたところ、ようやく無事繋がりました。因みに、WIN XP Home では「簡易ファイルの共有」しか使えないようです。WINDOWS 7 ではどうなっているんでしょうか。
正直言って疲れました。考えてみれば至極当然な、簡単な事だったのですが、そこにたどり着くまでが大変でした。解けてみればあっけない。まるで推理小説を一気に読み切ったようでした。
コメント