- PR -

.netからMSDEの接続で、「SQL Server が存在しないか、アクセスが拒否されました」エラー

投稿者投稿内容
M
会議室デビュー日: 2005/12/27
投稿数: 11
投稿日時: 2005-12-27 12:21
ローカルにMSDEをインストールし、osqlからテーブルを作成し、データも入れました。

.netからSql Server認証で接続すると、タイトルのようなエラーになります。

試しに、ODBCから接続してみると、osqlで接続したのと同じ、ユーザ、パスワードで接続できました。

OSは、Win XP Pro SP2、
MSDEは、SP3 8.00.760です。

以下を参照しましたが、解決できませんでした。
何か、こころあたりがありましたら、何でもかまいませんので、アドバイスいただけるとうれしいです。
よろしくお願いします。

名前付きパイプ サーバー ネットワーク ライブラリを使用するように
構成されている、Windows XP Service Pack 2 を実行するコンピュータ上の
SQL Server のインスタンスに接続できないことがある
http://support.microsoft.com/kb/839269/

エラー メッセージ "SQL Server が存在しないか、アクセスが拒否されました"
の原因
http://support.microsoft.com/kb/328306/
ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2005-12-27 12:41
とりあえず失敗する SqlConnection の ConnectionString と成功する Odbc の ConnectionString を挙げてもらえますか。

[ メッセージ編集済み 編集者: ya 編集日時 2005-12-27 12:44 ]
M
会議室デビュー日: 2005/12/27
投稿数: 11
投稿日時: 2005-12-27 13:22
早速のお返事ありがとうございます。

ConnectionStringとは、これのことでしょうか?

ConnectionString = _
"data source=" & <ローカルのマシン名> & ";" & _
"initial catalog=" & <データベース名> & ";" & _
"user id=" & "sa" & ";" & _
"password=" & "pass"

ODBCは、ツール(odbcad32.exe)から接続しているため、わかりません。
上記と同じ、ID、パスワードで、
データベースも、
「規定のデータベースを以下のものに変更する」を、上記と
同じデータベース名にして、接続できます。

質問頂いたことに回答できていますでしょうか?
未記入
会議室デビュー日: 2005/12/26
投稿数: 10
投稿日時: 2005-12-27 13:30
MSDEのセットアップ時に、認証モードが決定されてしまいます。
SECURITYMODEパラメータは正しく指定されたでしょうか?
SECURITYMODEパラメータの省略時のデフォルトはWindows認証モードになります。

以下、http://www.atmarkit.co.jp/fwin2k/win2ktips/583msde/msde.htmlより抜粋
SECURITYMODE=SQL
認証モードを従来のSQL Server(MSDE)のデフォルトである混在モードにする。混在モードでは、SQL Server認証とWindows認証の両方が有効になる。省略時のデフォルトはWindows認証モードとなり、Windowsのアカウントのみで認証が行われる。システム管理者アカウントsaは、SQL Server認証でのみ有効なアカウント
=================================================================

認証方法を変更するにはレジストリをいじるしかないので、下記を参照ください
http://frog.raindrop.jp/knowledge/archives/000043.html
M
会議室デビュー日: 2005/12/27
投稿数: 11
投稿日時: 2005-12-27 13:45
ありがとうございます。

認証モードは、混合モードにしてあるのです。

念のため、レジストリで、確認しましたが、2になっていました。。

せっかく書き込みしていただいたのに、ごめんなさい。。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-12-27 13:52
osql -S ローカルのマシン名 -U sa

で繋がるでしょうか?

ConnectionString = "data source=(local);" & _

で繋がるでしょうか?

MSDE2000Aのデフォルトインストールだとマシン名やIPアドレスで
つながらないです。

ReadmeのDISABLENETWORKPROTOCOLS
M
会議室デビュー日: 2005/12/27
投稿数: 11
投稿日時: 2005-12-27 14:24
ありがとうございます。

はい。OKです。

saで、パスワードを設定したので、パスワードを要求されますが、
接続できます。。
未記入
会議室デビュー日: 2005/12/26
投稿数: 10
投稿日時: 2005-12-27 14:51
ConnectionStringにユーザID、パスワードを指定する場合は、
明示的に”Persist Security Info” を true に設定する必要があるようです。

ConnectionStringの先頭に、
"Persist Security Info=true; " & _
を追記してみてください。

[ メッセージ編集済み 編集者: 未記入 編集日時 2005-12-27 14:52 ]

スキルアップ/キャリアアップ(JOB@IT)