• 締切済み

接続者の情報を取りたい

dbにaspで参照したり、アプリケーションからデータベースに書き込んだりしています。 現在アプリケーション側では、IPアドレスはdbに書き込んでおりますが、NAT経由で複数のPCから書き込みを行なうと同じIPが羅列してしまい、PC判別ができません。 アプリケーション側を変更したくないので、SQLサーバー側で対応したいのですが、ムリでしょうか?

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

dbとaspとアプリケーションの関係をはっきり説明しないと答えようないと思うよ。これ。 DBMSがSQL Serverなのは分かった。aspもまぁSQL Serverに蓄えられているデータを引っ張ってきて何かのページを作るのだろうなぁ。アプリの部分がさっぱり。 この質問に対して、私が疑問に思った事を羅列しておくので、補足できる事は補足した方が答えが返ってきやすいと思うです。 1.ASPは参照しかしないのか? 2.アプリケーションて何? VBで作ったEXE? それともこれもASPなの? 3.IPアドレスを保存するのは何をした時の話? 4.NAT変換で同じIPが羅列するのは何の時?(3.と同じ話)

nobu884
質問者

補足

スイマセン。 自分だけわかっていることを説明するのは難しいですね。 >1.ASPは参照しかしないのか? これから参照してつかう予定です。 >2.アプリケーションて何? VBで作ったEXE? それともこれもASPなの? VCで作った(らしい)exeですが、他社が作ったため変更できないんです。 >3.IPアドレスを保存するのは何をした時の話? >4.NAT変換で同じIPが羅列するのは何の時?(3.と同じ話) exeは通信ツールなのですが、複数のクライアントに対して同期を取るために接続情報(ユーザ名やIPアドレス)を保存してます。 通信ツールをクライアントがADSLなどで、同じ場所から複数台つなぐと同じIP(REMOTE_ADDR)しか保存されないので、IPだけでユーザを判別できないんです。 クライアントマシンから、プログラム(exe)がSQL Serverにアクセスし、UserIDやIPをテーブルに書き込みます。 その情報を同じクライアントマシンからASPファイルを開いた時にUserIDを取得したいのです。 プログラムが変更できないため、SQL Serverにレコードがセットされる時にそのレコードにクライアントを後から判別できるような情報が書き込めるかという内容です。

関連するQ&A

  • ACCESSからODBC接続での書き込みや更新

    ACCESSからODBC接続での書き込みや更新 環境 OS:WindowsXP home SQL Server Express 2008 SQL server manegement studio 2008 パソコンネーム:pc01に SQL Server Express 2008をインストールしてあり そのパソコンからマイクロソフトACCESSからODBC経由で SQLにアクセス(全て同一パソコン) SQL server manegement studioで 以下のようにデータベースを作成しました データベース名:DB01 テーブル名:tbl_01 所有者:pc01\user1 ODBC接続の設定 以下3点以外は規定値 接続するSQLサーバーの名前:pc01\SQLEXPRESS ネットワークへのログインIDでWindows NTの認証メカニズムを使う 規定のデータベースを以下のものに変更する:DB01 この状態でACCESSからODBC経由でDB01のtbl_01に接続しても 新規書き込みや更新が出来ません、 書き込みや更新をしたい場合何を設定すれば良いのでしょうか? SQL server manegement studioで ユーザー、ロール、マップなどを 色々触って見たのですがテーブルの閲覧は出来ますが 更新や新規書き込みが出来ません。 確認すべき項目など御座いましたら具体的にお教え願えれば 幸いです、よろしくお願い致します。

  • ASPから異なる複数のDBサーバーに接続する方法

    ASPの質問です。WEBサーバーと複数のDBサーバーがあります。 ADODB.Connectionでオラクルサーバーに接続し、データベースオブジェクトを作成しています。 別々のDBサーバーにあるテーブルを結合して利用したいのですが、ASPで可能でしょうか? 例えば"select * from A,B where A.ID=B.ID"というSQL文を実行する(AとBは別々のDBサーバーにある)。 とりあえず、代替案で検討しているのは片方のDBサーバーにデータベースリンクで他方のDBサーバーのVIEWを作ろうかと思っています。できればASPで解決したいのですが、よろしく御願いします。

  • Windows2003サーバーのデータベースへの接続方法を教えてくださ

    Windows2003サーバーのデータベースへの接続方法を教えてください。 うちの会社では外注で作ったアプリ(Access2003らしき感じ)を使っているのですが、使っているうちに他にも付けたい機能がでてきたため、自分でVBAを組んで作ってしまおうかなと思いました。VBAはちょっとは知っているものの、久しぶりなので素人同然です。 アプリの仕組みはよくわからないのですが、 アプリを起動するときは、ユーザーIDとパスワードを入力すると「アプリケーションサーバに接続しています」というようなメッセージの後にIPアドレスが出て、Windowsサーバー2003のアプリケーションサーバ(?)に接続しているような感じです。 データベースがAccessかどうかはわかりませんが、とりあえずAccessだと仮定して、どのようにVBAをコーディングすればデータベースにアクセスしてデータを参照することができるでしょうか? ※SQLの話ではなく、 ■データベース名・テーブル名・カラム名など、アプリで引っぱり出しているデータベースの情報はどのようにすれば取得できるか? ■アクセスするには、ログイン時に出てくるIPアドレスなども記述する必要があるのか?ということと、その記述方法 などについてお尋ねしたいという感じです。 DBがオラクルとかなら根本的に勘違いな質問なのかもしれませんが、アプリがAccessで作ったような感じなので、DBもAccessだと思っています。月曜日にやってみたいと思いますので、わかる方からの回答をお願いします。

  • IIS+ASPで実行可能なサーバと不可能なサーバがある

    現在、IISとASPを使用してアプリケーションを動かしています。 データベースにMDBファイルを使用し、データの 登録・参照・削除をASPで行っています。 都合によりIISサーバを違うPCに移し変えることになりました。 ファイルをコピーして、IISの設定を同じにしましたが、 クライアントからデータの書き込みをすると「ページを表示できません」 と出てしまいます。エラーの理由としてデータの追加を行っている ASPファイルの「(レコードセット).AddNew」の行で 「データベースまたはオブジェクトは読み取り専用なので、更新できません」 ということなのですが、今までのサーバでは動いていたファイルを そのままネットワーク経由でコピーしただけなので 修正方法がわかりませんでした。 IISの設定はあまり詳しくないので、不足している情報が あれば追記いたします。 OSは新PC・旧PCともにWindowsXP Pro(SP1)です。 ご指導よろしくお願いいたします。

  • VPNクライアントからSQLへ接続できない

    2拠点(本社-支店)間をハードウエアVPNで接続しております。 VPN自体の接続は正常に機能しています。 支店側のクライアントPCから業務アプリケーションを使って、本社SQLサーバーのデータベースを開こうとしても、「サーバー、フォルダが見つからない」と表示され、データ接続できません。 どのように対処したらよいのか、ご助言をお願い致します。 支店クライアントからアプリでDBファイルを開く際には、\\192.168.x.xxx\DBnameとSQLサーバーPCのローカルアドレス、DB名称を直接入力し、指定しています。 また、本社側のルーター設定で、SQLポートは開放しています。 支店クライアントPCで、ブラウザを起動し、アドレス欄に本社サーバーPCのローカルアドレスを入力すると、サーバーPCの共有フォルダは表示されます。 説明が不足してる部分もあるかと思いますが、宜しくお願い致します。

  • ログインID・パスワード認証時の大文字・小文字区別

    ASPにおいてログイン画面よりログインID・パスワードを入力した後、SQLサーバのDBを参照し存在する場合のみログイン成功としていますが、大文字・小文字は判別していません。 例えばDB上ではパスワードが「test」でも「TEST」と入力すればログイン成功となります。 大文字・小文字を区別して認証する方法はないでしょうか?? よろしくお願いします!!!!

  • 複数データベースへの問い合わせ

    同一サーバーに(DB1,DB2,DB3)と複数のデータベースがあった場合(ユーザーは同じです)、SELECTの際に複数のDBに対しての問い合わせをすることはできるのでしょうか? それぞれのデータベースはテーブルも全く同じ構造で、 そこから特定のフィールドのレコードだけを引っ張り出して使いたいのですが、SQLをどのように書いていいのかがわかりません・・・ ヒントだけでもいただけると嬉しいです。よろしくお願いします。

  • SQLサーバーへの接続に 接続したいのですが・・・

    質問する場所が 違ったかもしれないので 再度質問させていただきます。 SQLサーバーを始めたばかり です。 ASPで SQLサーバーのデータを表示しようとしています。 環境: WinXP (Pro)     IIS設定済み     SQL Server 2005 Express Edition 近くに2003サーバーがあるので 最終的にはそちらで動作させる予定です。 サーバーが現用機なので 自PCで動作確認してからと思っています。 色々ネットや本を調べて まず接続しようとしましたが そこでつまづいています。 この方法以外も沢山試しましたが全てうまく行きません。 2005 ExpressでDBとテスト用のテーブルが作成してあります。 そのデータを読み出せれば 第一段階とトライしますが、 IEから接続にいくと「objCon.Open」がエラーになってしまいます。 ASPファイルの内容は 以下です なお DB名は 「作成した名前」と入れています よろしく お願いします ---------------------------------------------------- <%@ LANGUAGE="VBScript" %> <% option explicit %> <% Dim objCon ' DB接続コネクション Dim objRS ' DB結果レコードセット Dim sql ' SQL文 Dim errflg ' エラーフラグ 'DataSource名 Const DS = "111.111.0.1" ←IPアドレス。正しいものをいれてます Const IC = "DB名"      'ユーザ名 Const User = "sa" 'パスワード Const Pwd = "sa" Set objCon = Server.CreateObject("ADODB.Connection") Set objRS = Server.CreateObject("ADODB.Recordset") objCon.ConnectionString = "Provider=SQLOLEDB;" & _ "User ID=" & User & ";" & _ "Password=" & Pwd & ";" & _ "Data Source=" & DS & ";" & _ "Initial Catalog=" & IC objCon.Open'ここで エラーになります sql = "select * from Aテーブル" objRS.Open sql,objCon,adOpenStatic,adLockReadOnly %> レコード件数 <%=objRS.RecordCount%> <% ' DBclose objCon.Close() Set objCon = Nothing objRS.Close() Set objRS = Nothing %> なお エラー内容は 以下です ----------------------------- HTTP 500.100 - 内部サーバー エラー - ASP エラー インターネット インフォメーション サービス エラー タイプ Microsoft OLE DB Provider for SQL Server (0x80004005) [DBNETLIB][ConnectionOpen (Invalid Instance()).]接続が正しくありません ----------------------------- また  1.IPアドレスは Const DS = "127.0.0.1"でも 同様なエラーです 2.表示できるASPファイルを置き、他のPCから 表示できる環境です

  • ADODB接続のORマッパー

    DBについての知識があまりないので質問します。 WindowsAzureを使ってアプリケーションを作成しています。 言語 PHP データベース AzureSQL、MySQL PHP 5.3 ADODB接続 使用するDBが複数になる可能性があるので、ORマッパーを使用して、SQL実行時は共通化したいと考えています。 MDB2接続の場合、PEARでドライバが用意されていますが、ADODB接続の場合SQLAzure接続時のORマッパーはありますか? 知識が乏しいので、言語の使い方がおかしいかと思いますが、よろしくお願いします。

  • SQL ServerへのODBC接続

    Excelの「外部データの取り込み」により、SQLサーバー内のデータベースよりデータを取得しようとしています。 新しいデータソースの登録のステップで、データソースの種類「Microsoft SQL Server」を選択して、次のポップアップウィンドウでサーバー名と認証IDを入力。そうすると接続可能なDBが「使用するデータが含まれているデータベースを選択」のテキストの下のドロップダウンリスト中に現れるのですが、サーバー側で(local)の中に登録されているDBしか現れず、ユーザ側で定義されたインスタンス(と呼んでいいんでしたっけ?)の中のDBのテーブルを読みに行くことができません。 どのようにすれば、ユーザ側で定義されたインスタンスの中のDBのテーブルを読みに行くことができるようになるのか、ご教示いただけると有り難く思います。宜しくお願い致します。