質問: 環境 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 ユーザーインスタンス.aspx#Anchor_2)に > > `Integrated Security`が`true`に設定されます。ユーザーインスタンスに接続するにはWindows認証が必要です。SQL Serverログインはサポートされません。 > > > とあるように`sa`でのログインは制限されているようです。 管理者以外のユーザーのためのユーザーインスタンス.aspx)で説明されていますが > > ユーザーインスタンスは、管理者以外のユーザーが各自のアカウントでSQL Serverのローカルバージョンを実行できるようにする機能です。 > > > とあるように実行したユーザー権限で動作させる機能ですのでそもそもWindows認証が必須です。これはユーザーインスタンス登場当時からの制限であり途中から変更されたものではありません。