SQL Serverの謎
投稿日: 2008-12-04 /
カテゴリー:job
ネットワークに参加していないマシンで動かす、SQLServer2008ExpressEditionとVisualBasic2008ExpressEditionを使った単体システムを作りました。「無料」って素敵な言葉だ!
基本的には、DBへの接続はSqlClientを使っているのですが、Accessのmdbファイルとのデータのやりとりがあるため、一部OleDbも使っています。
OSはWinXPです。
Admin権限ユーザでログインしてるときは気がつかなかったのですが、一般ユーザでログインして使ってみたら、OleDb.OleDbConnectionのOpen時にエラーが出ます。いやん。
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server が存在しないか、アクセスが拒否されました。
ちなみにSQL Server Browserは停止しています。
SqlClient.SqlConnectionだとOKで、OleDb.OleDbConnectionだとエラーが出るのです。でもAdminユーザでログインしてるとOleDb.OleDbConnectionでもOK。
な・ん・で・だ・よ!
結局、ConnectionStringの「server=localhost\SQLEXPRESS」の部分を「server=(local)\SQLEXPRESS」または「server=.\SQLEXPRESS」にしたら動くことが分かったので「.」にすることにしました。
謎。
ちょっと調べてはみたのですがなんでかはよく分からず。気持ち悪いなー。嫌だなー。
Adminユーザにだけ、SQLServerにWindows認証で接続できるようにしたの関係あるのかな。