AN HTTPD ゲストブック/コメント集(2005年1月7日10:59)


中田昭雄 nakata@st.rim.or.jp 2005/01/07 21:11

ケビンさん、
AN HTTPD のサービスの「ログオン」で、 HosozawaK などの管理者アカウントでログオンするようにしてみてください。 現在はローカルシステムアカウントになっていると思います。


ケビン hosozawa-k@sus.co.jp 2005/01/07 10:59

AN HTTPDを介してSQL Serverとの連携を考えRubyにてプログラムを作成しました。
このプログラムをコマンドプロンプトより実行すると正常に終了し結果も得られるのですが
同プログラムをAN HTTPDを介して実行した場合にはエラー(500)となってしまいます。

<エラーの内容>
c:\ruby\lib\sql_access.rb:30:in `method_missing': Open (WIN32OLERuntimeError)
OLE error code:80040E4D in Microsoft OLE DB Provider for ODBC Drivers
[Microsoft][ODBC SQL Server Driver][SQL Server]ユーザ 'DMSUS\GENKA1$' はログインできませんでした。

エラーはODBC SQL Server Driverでのログインにあることは読み取れるのですが
原因がわかりません。
ちなみにSQL Server側での認証方法はNT認証を選択しております。
クエリアナライザより同サーバに接続した結果をみるとDMSUS\HosozawaKとなっていることから
AN HTTPDを利用することで、このあたりが変換?されてしまうのではないかと
思われます。

解決方法についてご存知の方がいましたらアドバイスをお願いしたいと思います。
よろしくお願いします。

参考:プログラムより抜粋

#--- データベース接続 
conn =ADOconn.new('DRIVER={SQL Server};SERVER=JK01SV\FM2;DATABASE=pubs;Trusted_Connection=yes;Network=DBMSSOCN' )

#-------------------
# class ADOconn
#-------------------
class ADOconn
include ParseSql

def initialize(str)
require 'win32ole'
@ado = WIN32OLE.new('ADODB.Connection')
@ado.Open str
end