ASPでデータベース連携した時のアクセス制限は?

このQ&Aのポイント
  • ASPでデータベース連携する際のアクセス制限について教えてください。
  • 今回はSQL Server 2005 Expressに移行したため、インターネットユーザーがパスワードなしでデータベースにアクセスできる設定方法が知りたいです。
  • 以前はmdbファイルを使用していましたが、SQL Server 2005ではWindows認証で接続するため、アクセス制限の設定についてわからない部分があります。
回答を見る
  • ベストアンサー

ASPでデータベース連携した時のアクセス制限は?

お世話になります。以前はアクセスでデータベース接続していたのですが、件数の増加により、試験的にSQL Server 2005 Express に移行しました。マイクロソフトのサイトを参考にして、アクセスからアップサイジングして、無事に接続することが出来ました。ひとつ不明な点があるので教えてください。Webアプリケーションで、データベースに書き込みをしたり削除をしたりするので、mdbファイルの時は、置いてあるフォルダは匿名アクセス(IUSR_コンピュータ名)で認証し、フルコントロールOKに設定していました。(社内イントラネットのみで運用)SQL Server 2005 の場合は統Windows認証で接続しています。IISを経由してインターネットユーザーがパスワードなしでデータベースにアクセスできるようにするにはどのように設定したらよいのでしょうか?

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

  • ベストアンサー
  • SRL311
  • ベストアンサー率100% (2/2)
回答No.1

匿名アクセス(IUSR_コンピュータ名)をSQLServer上のデータベースのユーザーとして登録すればOKだと思います。

mei0311
質問者

お礼

ありがとうございました。

関連するQ&A

  • ASPによる アクセス2000のデータベース更新について

    アクセス2000で作成したデータベースに ASPでデータベースを更新しようとしたのですが、エラーとなって更新できずにいます。 (アクセスデータベース内容) ID F1 F2 1 TEST1 TEST2 2 1 2 3 4 5 4 23 ※ID の 5  に 23 を登録したい。 (ASP内容) <% ' データベースへの接続を開始 Set cn = Server.CreateObject("ADODB.Connection") cn.Open "Driver={Microsoft Access Driver (*.mdb)}; " & _ "DBQ=" & Server.Mappath("TESTdb1.mdb") cn.Execute"INSERT INTO TTT(ID,F1) VALUES(5,23);" %> (エラー内容) エラー タイプ Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Driver] 更新可能なクエリであることが必要です。 /SQL-TEST/ncsch1.asp, line 7 アクセスの追加クエリで、INSERT INTO TTT(ID,F1) VALUES(5,23); を 実行したら、問題無く 5 23 が登録できましたので、データベース自体に他からの実行の場合、更新出来ないような 設定になっていると思うのですが、対処方法がわかりません。 どうすればよいか教えて頂けないでしょうか?

  • IUSR_MACHINEでMDBアクセスができない

    こんにちは、よろしくお願いいたします。 クラシックASPでシステムの作成を行っております。 DBはAccessの2003で、SP3があたっております。 IISは7で、Windows 2008 Server上に設置してあります。 先刻急に、SELECTでのデータ取得は可能なものの、 INSERTやDELETEによるデータ更新ができなくなりました。 (それまでは問題なくできていました。) 一応データ取得が可能であるので、権限の問題かと思いましたが、 MDBファイル自体に[IUSR_マシン名]のフルコントロール、 さらにMDBファイルを置いてあるディレクトリ自体にも [IUSR_マシン名]のフルコントロールを持たせたのですが、改善しません。 (ちなみに、MDBファイル上から直接クエリを実行した場合正常にデータ更新できます。) (また、Winプロセス上にACCESSのプロセスが残っていないことは確認済みです。) 試しに、MDBファイル自体に[Everyone]のフルコントロールを あててみたところ、データ更新ができるようになりました。 ということはMDBファイルにアクセスしている…ひいては WEBシステム利用時のユーザーが[IUSR_MACHINE]ではない ということになるのかと思いますが、実際に実行している ユーザー名を取得する方法が分かりません。 それが分かれば、そのユーザーに権限さえ与えてあげれば [Everyone]にフルコントロールを与えるという危険な行為は 避けれると思います。 上記のような状況なのですが、 [Everyone]へのフルコントロール以外で 改善する良い方法は無いものでしょうか? よろしくお願いいたします。

  • IISのアクセス制限について

    IISのVirtual Directoryとその中のFileのアクセス制限で、ちょっと困っています。 あるVirtual Directoryは、IUSR_hogeというユーザーを偽装し、匿名アクセスを許しています。 その中の特定のファイル(hoge.aspx、管理者向けのユーティリティ)のみ、統合Windows認証で特定のユーザーのみアクセスできるようにしたいと希望されています。 上記のように設定を依頼し、結果を聞くと、Browserからアクセスしたら、ID/PWの入力を求められるところまで行くけど(これもちょっと不思議)、設定したID/PWを入れても駄目だったと言われています。 設定のスクリーンショットを確認しましたが、上記のように設定されています。 このような設定がそもそも間違っているのであれば、別な方法を考えたいと思います。出来ないのでしょうか? Windows2003 R2/IIS6.0です。 なおVirtual Directory全体の設定に関しては、Applicationの作りもあり変更できません。

  • IIS6.0の匿名アクセスについて

    IISの認証方式はデフォルトで「匿名アクセスを有効にする」にチェックが付いており、ユーザー名は、「IUSR_<コンピュータ名>」になっています。 このユーザー名を参照ボタンから検索して、IISがインストールされたPCの管理者名を選択して設定(保存)した場合、何か意味はあるのでしょうか。

  • 特定ユーザーのみODBC接続可能としたい

    現在、下記構成にて社内Webを運用しております。 Windows Server2003 IIS6.0 SQLServer2000 ※1台のサーバーでIISとSQLが動いてます。 IISの規定のサイトのプロパティ⇒ディレクトリセキュリティ⇒ 認証方法は『匿名アクセスを有効にする』にチェックが入っており ユーザー名はIUSR_xxxで、統合Windows認証となっております。 また、SQLServer(Windows認証)のユーザーにIUSR_xxxとDomain Users が登録されており、それぞれのテーブルには両ユーザーにSELECTから DELETEまでの権限が付いてます。 現状、Web上からDBを操作(ある情報の検索や抽出)は可能で問題 ありませんが、今の設定だとドメインユーザーがODBC接続にて テーブルに直接アクセス出来てしまいます。 かといって、SQLServerに登録されているDomain Usersを削除 してしまうと、Webアクセスの際、エラーになってしまいます。 Webにはドメインユーザー全員がアクセス可能であり、かつ、 ODBC接続は特定のユーザーのみにしたいのですが、うまくいきません。 どのような設定を施せば可能になるのでしょうか? 勉強不足なものですから、情報的に足りないものがあるかと思いますが 宜しくお願い致します。

  • ASPとAccessとの接続について

    ASPとアクセスとの接続方法についてなのですが、 アクセスのテーブルはSQLのテーブルとリンクさせる、 という形をとっています。 アクセスデータが他のデータベースとリンクしてない場合には ASPとの連結はうまくいくのですが 上記の場合の連結方法が分かりません。 どうしたら良いのでしょうか? ちなみに環境は Windows2000,SQL7.0,IIS5,Access2000です。 どうぞよろしくお願いします。

  • ASP.NETからのデータベースの作成

    こんにちは。 SQL SERVER 2005 ExpressとIIS5.0とASP.NET2.0+C#で使っています。 一台のサーバーマシンに、SQL SERVER 2005 ExpressとIIS5.0をインストールした状態なのですが、Webページ上のC#のプログラムよりデータベースを作成しようとすると、 CREATE DATABASE 権限がデータベース 'master' で拒否されました。 と、メッセージが出ます。 要するに権限がないというのはわかるのですが、このようにWebからログインしてきたユーザーに権限を付加することはできるのでしょうか? あるいは、接続文字列かなんかで権限のあるユーザーでログインする、といったことが可能なものでしょうか? 現在は以下のようにして接続、作成を行おうとしています。 SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Server=.\\SQLEXPRESS;Integrated security=SSPI"; String strDatabase = "CREATE DATABASE newdatabase"; SqlCommand cmdDatabase = new SqlCommand(strDatabase, conn); conn.Open(); cmdDatabase.ExecuteNonQuery(); conn.Close(); エラーの内容から、SQL SERVERそのものへのアクセスは成功しているように思えます。 よろしくお願いします。

  • データベースサーバー構築

    質問場所がここで良いか少し不安ですが 主にWebで公開するデータベースのシステムを作ろうとしています 自分のスキルの範囲でやろうとしていますが少し分からないことがあるので 教えてください まず 自分のできること(やっていること)は ・Windows系サーバー(IIS)を使ってVBスクリプト(ASP)で ローカルにあるMDBファイルにアクセスし商品を紹介する動的ページの作成 です。 今後複数ユーザーでデータベースを使うことになるので システムを変えていく必要がでてきて MDBはダメだという事になり色々調べた結果、今後のことも考えWebサーバーとは別に データーベースサーバーを作ってやると言う結論になりました 分からないこと(あやふやな理解になっていること) 1.データベースサーバーとは何か?  これは OSは別として、SQL Server、オラクル、MYSQLといった  RDBMSをインストールしただけのデータベース置き場専用という感じのPCを指すと言うことで良いでしょうか?  例えば Win2000のIISでwebサーバーを作りその中のASPページから  別PCにあるデータベースにアクセスする構成がデータベースサーバーを別に設けると言うことで正しいのかどうかと言うことなのです。 2.データベースは何がよいか?(SQL Serverでよいか?)  本来であれば、webで商品在庫を公開することがメインで更新頻度が少ないデータベース  (300人ぐらいで共有し1万~3万レコードです)です、なおかつ複雑なSQLは発行しません。  ほぼASPからの接続で抽出(ID=** という単純な抽出条件)しか使わない、あとは並び替え位なので  MYSQLが向いているようでしたが、私はLinux系は全く分かりません。  なので メンテナンスの面や勉強する時間の節約からすれば  Windowsで動くSQL Serverが良いと思うのですが(MYSQLもWindowsで  動くけど得意とする高速性はLinux系でないと発揮しないみたいなのでやめようと思っています)  上記のような条件と使い方の場合、そんなに処理時間やマシンの負荷に両者間では大差があるのでしょうか?  MDBの時でもあまり不具合を感じなかったので、それよりは格段にSQL Serverは早いし負荷が少ないと聞いていますので  大丈夫かなと思っています。 3.SQL ServerをインストールするPCは何が最適か?  先も述べたようにデータベース専用として使う予定ですが  Win2000でよいのでしょうか?(XPより2000の方が安定がよいと思うので) それともWin2003Serverに  インストールできるならその方がよいでしょうか?  とにかく安定度が一番なのですが、そもそもWin2003Serverに  インストールできるのでしょうか?(もうすぐ2008?がでるからそれにしようかとも検討中です) 4.最終的に自分の思っていることと実体の構成(理解)は理解は以下のような感じで正しいのでしょうか?    複数でデータベースを共有するため、MDBでなくネットワークに強い (共有データベースで壊れにくい?壊れない?)データベースに変えるため、windowsで動くSQL Serverを使う  そのSQL ServerはwebサーバーがあるPCとは別のPCにインストールして使う  (データベースサーバーを別に用意する)ことでwebサーバーの負荷も減らし、データベースも快適に動くようにする 最終的にはWin2003Server×2台で1方はwebサーバー1方はSQL Server をインストールして使うことで上記を実現させる 5.SQL ServerのデータベースはMDBのような最適化というような作業が必要なのでしょうか?  そもそも 似ているようで違う MDBとSQL Serverでその特徴がきちんと理解できていないので  愚問なのかもしれませんが 気になるので教えてください 6.オラクルと違いSQL Serverはレコードの更新や追加の時  その行(レコード)だけロックすると言うことができない?  ようなので、Aさんが自分の商品を更新中にBさんも更新する  と言うようなことが起こった場合(MDBはこれになると壊れると書いているので MDBをやめました)  Aさんの更新が終わるまでBさんは更新できない(更新終了まで待つ)と言うことになるのでしょうか?  また、このとき商品一覧を要求された場合、更新中の情報はどの様になるのでしょうか?(更新終了まで見れない?) なんか 分かりにくい質問になってしまいましたが、お金をかけて 買ったはいいが、理解不足でやりたいことができなかったと言うことは 避けたいので ご教授下さい。 よろしくお願いします。

  • データベースにアクセスできる?

    ASPは自分のローカルPCデータベースではなく、サーバー上にあるデータベースへアクセスしますよね?(・・・たぶん。) 今回、私がやりたいことは、HTMLから自分のローカルPCアクセスデータベース(MDB)にアクセスしてデータを取得したいのです。 それって、可能なのでしょうか? 可能なのであればやり方を教えてくださいm(__)m

  • windows2000のIISの認証設定について

    windows2000でIISの認証設定の、匿名アクセス認証のチェックを外すと、ユーザー名とパスワードを聞いてくるのですが ユーザー名とパスワードに何を入れたら良いか教えてください。 認証の設定はIISの既定Webサイトのフォルダーに、プロパティ設定で、 ディレクトリセキリュティの匿名アクセス及び認証コトロールの編集の設定で、 匿名アクセスのチェックを外しています。 チェックを入れた状態のユーザー名は、IUSR_PCS17694でパスワード**********で ISによるパスワードの管理を許可するの所にチェックが入っています。