DOBON.NET DOBON.NETプログラミング掲示板過去ログ

別アプリのDBに接続したいのですが

環境/言語:[Windows Vista/7 C# VC2010 Winアプリ]
分類:[.NET]

お世話になります。

ウインドウズアプリから下記コードで、別アプリ(ASP.NET で使用している)のDBに接続したいのですが、このメッセージが出ます。

「このログインで要求されたデータベース "DB名" を開けません。ログインに失敗しました。ユーザー 'XX\abc' はログインできませんでした。」
アクセス権限の問題?みたいですが、どうしたら接続できますか?

教えてください。接続は、ウインドウズ認証でいきたいと考えています。

「コード:ウインドウズアプリ側」
SqlConnection conn = new SqlConnection(GetConnectionStrings());

System.Data.DataSet ds = new System.Data.DataSet();
try {
SqlDataAdapter adapter = new SqlDataAdapter(sqlStr, conn);

// Fill the DataSet.
int n = adapter.Fill(ds); <= ここでエラーになる
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}


static public string GetConnectionStrings()
{
string sonStr = global::Byouri.Properties.Settings.Default.ReportDataConnectionString;

return sonStr;
}
GetConnectionStrings()が返す内容は、
「Data Source=.\SQLEXPRESS;Initial Catalog=ReportForm;Integrated Security=True;Connect Timeout=30;User Instance=True;Pooling=False;」
こんにちは、おのでらです。

Windows 認証の場合の話です。

SQL Server Express Edition にアプリケーションを実行しているユーザーを追加して対象DB にアクセスできるように設定する必要があります。(ドメイン環境の場合、ワークグループなら同名、同パスワードのユーザーが必要)

または、ドメイン環境であれば、DBに接続できるグループを作成し、ドメインユーザーアカウントにそのグループを割り当てられれば接続できると思います。


接続できるようになるための設定はいろいろあるのですが、まず言えることは SQL Server に DB 接続権限を設定するところが必要というところです。
■No29326に返信(おのでらさんの記事)

> SQL Server Express Edition にアプリケーションを実行しているユーザーを追加して対象DB にアクセスできるように設定する必要があります。(ドメイン環境の場合、ワークグループなら同名、同パスワードのユーザーが必要)
>
お世話になります。
サーバに置いたときに接続するユーザをDBに登録することはわかります。
今回のケースは、まだ、開発段階でVS1010でProgram Files\Microsoft SQL Server内にあるDBにつないでテストをしようとしています。

この部分書くのを忘れてました。申し訳ありません。

で、この場合も登録する...必要ありですか?一応、登録済み?と思ってテストしようとしています。
そのデータベースのセキュリティ―ユーザー内に、[dbo][guest][INFORMATION_SCHEMA][user\SQLServer2005MSSQLUser$user$SQLEXPRESS][sys]の5つが登録されています。
■No29332に返信(Hiroさんの記事)

疑問なんですけど、Program Files以下のファイルのアクセスは、読み取り以外は
Windowsの管理者権限がないとだめなはずなのですが、
DBについてもそうなのではないでしょうか?
(アプリを管理者権限で実行していれば別かもしれませんが。)

DBの場所が、Windowsの管理者権限が不要の場所に配置するとどうですか?
■No29335に返信(ユージさんの記事)
> ■No29332に返信(Hiroさんの記事)
>
> DBの場所が、Windowsの管理者権限が不要の場所に配置するとどうですか?
教えていただいた通り、Program Files以下のMicrosoft SQL Serverに自動で作られたファイルを開発環境のMyDocuments以下のVisulal Studio 2010以下に移動したら両方のプログラムからアクセスできるようになりました。

これで作業が開始できるようになりました。ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板