@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

WEBサービスからキックされたEXE内でのDBアクセス

投稿者投稿内容
まわ
常連さん
会議室デビュー日: 2006/03/09
投稿数: 43
投稿日時: 2006-03-29 09:51
お世話になっております。

「WEBサービスからキックされたEXE内でのDBアクセス」で悩んでおります。

■失敗[MethodName : Connect] [Message : アクセスが拒否されました。]■

テキストファイル出力でエラーを拾ってみたところ、

sConnection = new SqlConnection(cStr);
sConnection.Open();

コネクションを開く際にエラーを起こしています。

------------------------------------------------
Data Source = TESTPC01;Initial Catalog = testserverdb;
user = testuser;password = test;Integrated Security = SSPI;
------------------------------------------------
WEBサービス内からDBにアクセスする際は上記のコネクションストリングで
成功しています。
ところがWEBサービスからEXEをキックしてDBに更新を行わせようとすると
上の様なエラーが発生してしまいます。

[testuser]はweb.configで設定した偽装ユーザーです。
DBサーバには同名/同パスのユーザーでDBアクセスの権限を与えております。

どのようにすれば成功させる事ができるのでしょうか。

ユーザー権限が関連しているということは私としましては予想がつくのですが
ぜひ皆様にご教授頂きたく思い投稿致します。

宜しくお願い致します。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-03-29 09:57
引用:
まわさんの書き込み (2006-03-29 09:51) より:
Integrated Security = SSPI;


Windows認証をやめてSQL Server認証にするとか。
まわ
常連さん
会議室デビュー日: 2006/03/09
投稿数: 43
投稿日時: 2006-03-29 10:28
ぶさいくろうさん

お返事ありがとう御座います。
早速WINDOWS認証からSQLServer認証に切り替えて行ってみたのですが
失敗してしまいました。

------------------------------------------------
Data Source = TESTPC01;Initial Catalog = testserverdb;
user = sa;password = pass;
------------------------------------------------
↑のように試しましたが駄目でした。

ぶさいくろうさん、ありがとう御座います。
皆様どうかご教授願います。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-03-29 11:14
引用:

失敗してしまいました。



引用:

↑のように試しましたが駄目でした。



またそのパターンですか。。。
こうして、また何度も無駄なやり取りが発生するわけですね ;-p

「失敗しました」「ダメでした」つーのは、具体的に、どこでどんなエラーが報告/表示されているんでしょうね?

もう少し具体的に現象を説明しましょうよ。

仮に「前回と同じ」だとしたらそう書いてください。
あなたが目にしている現象は、あなたの目にしか映ってないのです。

>Data Source = TESTPC01;Initial Catalog = testserverdb;
>user = sa;password = pass;

sa のパスワードには正しいものを指定してますよね?

あ、まさか SQL Server が SQL 認証を受け付けるように構成されていないとか?


[ メッセージ編集済み 編集者: 渋木宏明(ひどり) 編集日時 2006-03-29 11:17 ]
まわ
常連さん
会議室デビュー日: 2006/03/09
投稿数: 43
投稿日時: 2006-03-29 11:30
本当に申し訳ありません。以後気をつけます。

-----------症状-------------------------------
エラーメッセージ:アクセスが拒否されました。
Data Source = TESTPC1;Initial Catalog = testserverdb;
user = sa;password = pass;
----------------------------------------------
コネクションを開く際のエラーです。


---------------------------------
sa のパスワードには正しいものを指定してますよね?
---------------------------------
enterprise manager でDBサーバーを覗く際、SQLSERVER認証でアクセスしており
そのパスワードと同じ文字列を書き込んでいますので、合っていると思うのですが・・。

----------------------------------
あ、まさか SQL Server が SQL 認証を受け付けるように構成されていないとか?
----------------------------------

SQL SERVERのプロパティ-セキュリティは混合モードになっていますが
この設定のままで正しいのでしょうか?

宜しくお願い致します。
macoto
常連さん
会議室デビュー日: 2006/02/15
投稿数: 25
お住まい・勤務地: 東京都/東京都
投稿日時: 2006-03-29 11:48
SQL 認証にプログラムを変更したものを
Webサービスからでなく、直接ユーザが実行して
SQL Serverに接続できるか確認しましたでしょうか?
まわ
常連さん
会議室デビュー日: 2006/03/09
投稿数: 43
投稿日時: 2006-03-29 12:05
macotoさん、お返事ありがとう御座います。

----------------------------
Data Source = TESTPC1;Initial Catalog = testserverdb;
user = sa;password = pass;
----------------------------
SQLSERVER認証、ローカルユーザー起動の環境でコネクションのオープンに
成功しております。

宜しくお願い致します。
macoto
常連さん
会議室デビュー日: 2006/02/15
投稿数: 25
お住まい・勤務地: 東京都/東京都
投稿日時: 2006-03-29 12:42
引用:

まわさんの書き込み (2006-03-29 12:05) より:
----------------------------
Data Source = TESTPC1;Initial Catalog = testserverdb;
user = sa;password = pass;
----------------------------



Data Source が TESTPC1 だったり TESTPC01 だったり変わっているのは何故でしょうか?少しずつ原因を探っていく必要があると思いますが、条件が変わってしまっては検証にならないかと思います。

あと、Webサービスからのexe起動とありますが、ユーザからの起動で動作確認をしたマシンはWebサービスがあるマシンで行いましたでしょうか?

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