こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ASP AccessDBオープン出来ない

お世話になります。

サーバー:WindowsServer2003 R2 SE
DB:Access2003

WindowsServer2003にASPを配置し、同じくWindowsServer2003にAccess2003を配置し、
ASPからAccessをオープンする時にエラーが出ます。
ODBC設定パターンと、Jetパターン両方等ダメです。
IISはもちろん設定しており、権限も問題無いと思われ、MicrosoftサポートでもTEMPのアクセス権限どうのこうのとありましたが、問題なさそうです。

サイトを探しまくって、分からない為、ご質問させて頂きまた。

有識者の方々、ご享受宜しくお願い申し上げます。


【ソース1】
Set gCon = Server.CreateObject("ADODB.Connection")
gCon.Open "TEST"

※TESTはODBC名です。Accessを指定しております。Accessにはパスワードも何もありません。

【Webページ結果】
Microsoft OLE DB Provider for ODBC Drivers エラー '80004005'

[Microsoft][ODBC Microsoft Access Driver] ファイル '(不明)' を開くことができませんでした。ほかのユーザーが排他的に開いているか、データを読み取る権限がありません。


【ソース2】
Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("TEST.mdb")
adoCon.Open

※パスはあってます。

【Webページ結果】
Microsoft JET Database Engine エラー '80004005'

エラーを特定できません



--------
ローカルでASP、Accessを実行すると、問題なくオープン出来ます。
WindowsServer2003が問題なのでしょうか?

投稿日時 - 2011-07-11 10:07:31

QNo.6868257

困ってます

質問者が選んだベストアンサー

IIS側で統合Windows認証で認証した、ということは利用者が自分のPCでログインした情報をそのままサーバー側で使うことになります。
つまり、それぞれの利用者が自分の権限でWeb上の操作を行う、と。
ここでEveryOneに対してフルコントロールされているから利用できることになった、ということですね。
ActiveDomainが動いている社内からだけ利用するシステムならこれでもいいでしょうね。

投稿日時 - 2011-07-13 11:49:39

お礼

社内のイントラネットなのです。
Web公開はしないので、大丈夫ですね。

ここまでお付き合い下さりありがとうございます。

投稿日時 - 2011-07-13 18:19:39

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

> EveryOneのフルコントロールでは、ユーザーに権限を与えた状態では無いのでしょうか?

はい、IISの実行時ユーザーはEveryOneに含まれない特殊なユーザーです。
って、そうか、ASPか。。。
ASP.NETとはまた異なりますが、それでもEveryOneには含まれないアカウントだったかと。
このあたりもっとよく調査されたほうがいいと思います。

投稿日時 - 2011-07-12 17:51:55

お礼

何度もご返答誠にありがとうございます。

今し方、Accessにコネクト出来ました。
どうもユーザーアカウントの状態ではなく(勿論更新権限がなくてはいけませんが)、
IISの認証済アクセスの問題だったみたいです。

認証方法を、認証済アクセスの「統合Windows認証」にすれば、Accessにコネクション出来ました。
正直良くは分かっていないのですが、ActiveDirectory関係なのですかね…
結果はOKだったのですが、如何せん納得は余りしていない状態です…

一度はAccessを諦めて、XMLでレコードセットし、データを取得しようと考えていたのですが、
XMLテキストベースでは読み込めるのに、レコードセットオブジェクトを利用しようと、Openメソッドを使用した途端に、Accessと同様のエラーが出ていました。
これも認証の方法なのかも知れません(検証はしておりません)

投稿日時 - 2011-07-13 10:39:32

ANo.1

> ほかのユーザーが排他的に開いているか、データを読み取る権限がありません。

このエラーメッセージのとおりじゃないでしょうか。
権限に問題がない、という判断はどうやってしましたか?
IISの実行ユーザーは一般的なユーザーとは別にマシン毎に作成されていますので、そのユーザーに権限を与える必要があります。
ちょっとここは不明確ですが、たしかAccessファイルであれば書き込み権限まで必要だったと思います。

> ローカルでASP、Accessを実行すると、問題なくオープン出来ます。

これはローカルでASPを実行しているユーザーに権限があるからでしょうね。

投稿日時 - 2011-07-12 10:48:15

補足

ご返答誠にありがとうございます。


>権限に問題がない、という判断はどうやってしましたか?
>IISの実行ユーザーは一般的なユーザーとは別にマシン毎に作成されていますので、そのユーザーに権限>を与える必要があります。
>ちょっとここは不明確ですが、たしかAccessファイルであれば書き込み権限まで必要だったと思います。

AccessMDBのアクセス権は、EveryOneのフルコントロールになっており、対象フォルダのアクセス件も同様です。
上位のフォルダにもEveryOneのフルコントロール
ASPで、テキストファイルの書き込み、作成・削除等は可能です。
それにより権限に問題ないと判断しました。

IISの問題かな、とも思い、読み取りや書込み、ディレクトリタブの権限のチェックボックスを全て、チェックしているのです…。


>IISの実行ユーザーは一般的なユーザーとは別にマシン毎に作成されていますので、そのユーザーに権限>を与える必要があります。
EveryOneのフルコントロールでは、ユーザーに権限を与えた状態では無いのでしょうか?

投稿日時 - 2011-07-12 11:05:33

あなたにオススメの質問