- PR -

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

投稿者投稿内容
まわ
常連さん
会議室デビュー日: 2006/03/09
投稿数: 43
投稿日時: 2006-03-29 17:06
ワーカプロセスの実行ユーザーの権限の問題とありましたが
aspnet_wp.exeの実行ユーザーはASPNETです。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2006-03-29 19:02
偽装って起動したプロセスには効かないんじゃなかったでしたっけ?
なんで、起動したプロセスの方はASPNETの方になっててとか
そういう話じゃないですか?
※流れをちゃんと追ってないし、そういう話だとしてもおかしい、のかもしれませんが…
まわ
常連さん
会議室デビュー日: 2006/03/09
投稿数: 43
投稿日時: 2006-03-29 19:31
なちゃさん>
ありがとう御座います。おっしゃるとおりで
なぜ子プロセスはしっかりをASPNETで呼ばれているのだろうと
いう疑問も持っておりました。

さきほど、
・ASPNETユーザーのパスワードを任意に変更
・machine.configを同じパスワードに設定
・DBサーバーに同じID/PASSの ASPNET/PASSを作成し実行したところ

DBサーバーに配置されているとあるファイルには子プロセスから参照することが
できました。しかし、未だにデータベースの方は解決しません。

System.ApplicationException: アクセスが拒否されました。
が発生します。

at System.Security.Principal.WindowsIdentity._GetCurrentToken()
at System.Security.Principal.WindowsIdentity.GetCurrent()
at System.Data.SqlClient.DefaultPoolControl.GetCurrentWindowsIdentity()
at System.Data.SqlClient.DefaultPoolControl.ObtainSidInfo(IntPtr& SID, IntPtr& tokenStruct)
at System.Data.SqlClient.SqlConnectionPoolManager.GetPooledConnection(SqlConnectionString options, Boolean& isInTransaction)
at System.Data.SqlClient.SqlConnection.Open()
at TestJobExe.SdxDataBase.Connect(String cStr, String& errorMsg)[MethodName : Connect] [Message : アクセスが拒否されました。


先ほどじゃんぬねっとさんにご指摘いただいた
「System.UnauthorizedAccessException: アクセスが拒否されました。 」
とは違うエラーが発生いたしました。

まわ
常連さん
会議室デビュー日: 2006/03/09
投稿数: 43
投稿日時: 2006-03-29 19:36
System.ApplicationException: アクセスが拒否されました。
が発生します。
---------------------------

Data Source = TESTPC1;
Initial Catalog = testserverdb;
Integrated Security = SSPI;
というWINDOWS認証で接続した際に発生した例外です。補足いたします。
失礼致しました。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-03-29 20:12
引用:

偽装って起動したプロセスには効かないんじゃなかったでしたっけ?
なんで、起動したプロセスの方はASPNETの方になっててとか
そういう話じゃないですか?



の可能性があるので、「接続プロトコルを TCP/IP のみにしてみては?」とアドバイスしてみました。

DB接続に名前付パイプを使用していた場合、プロセスのアカウント権限が問題になると考えたためです。

まわ
常連さん
会議室デビュー日: 2006/03/09
投稿数: 43
投稿日時: 2006-03-29 21:05
渋木宏明(ひどり)さん>

TCP/IPのみで接続する方法を教えていただけませんでしょうか。すみません。
接続方法の種類で名前付きパイプやTCP/IPでの接続が存在するということは
調べて分かったのですが、具体的に何をすればいいのか分かりませんでした。
どうかお願い致します。
まわ
常連さん
会議室デビュー日: 2006/03/09
投稿数: 43
投稿日時: 2006-03-31 11:18
連投で申し訳御座いません。
皆様ありがとう御座います。

WEBサービスからキックされるEXEの起動ユーザーを
ASPNETではなくしたいのですが、ユーザーを明示的に指定するなどして
起動させる事はできるのでしょうか。

宜しくお願い致します。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-03-31 12:32
引用:

渋木宏明(ひどり)さん>



こういう場合、名指してのは気分よくないもんなんですよ ;-p

引用:

TCP/IPのみで接続する方法を教えていただけませんでしょうか。



SQL Server のバージョンによって手順が違います。

クライアント/サーバともに SQL Server 2005 のコンポーネントを使用しているなら、SQL Server Configration Manager でプロトコル構成を設定します。

クライアント/サーバの設定をあわせておかないと、当然、まったく接続できなくなります。

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