Windows Form アプリケーションでSQLServerへ接続できない

投稿者: Anonymous

環境
Visual Studio Express for Desktop
SQL Server Express 2014
C# Windows Form アプリケーション

にて開発を行っております。

VisualStudioでアプリケーションを実行した際は問題無くSQLServerに接続されるのですが
ビルドしたexeを直接実行すると

「このログインで要求されたデータベース "dbo" を開けません。ログインに失敗しました。
ユーザー 'sa' はログインできませんでした。」

という例外が発生するようになりました。
このような場合、まず何を疑えばよいのでしょうか。

接続文字列は以下になります。

@"Server=.SQLEXPRESS;"
                       + @"AttachDbFilename=|DataDirectory|db.mdf;"
                       + "Database=dbo;"
                       + "integrated security=false;"
                       + "User ID=sa;"
                       + "Password=xxxx;";

解決

SQL Server Express ユーザーインスタンス

Integrated Securitytrueに設定されます。ユーザーインスタンスに接続するにはWindows認証が必要です。SQL Serverログインはサポートされません。

とあるようにsaでのログインは制限されているようです。


管理者以外のユーザーのためのユーザーインスタンスで説明されていますが

ユーザーインスタンスは、管理者以外のユーザーが各自のアカウントでSQL Serverのローカルバージョンを実行できるようにする機能です。

とあるように実行したユーザー権限で動作させる機能ですのでそもそもWindows認証が必須です。これはユーザーインスタンス登場当時からの制限であり途中から変更されたものではありません。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *