none
WindowフォームアプリケーションとAzureについて RRS feed

  • 質問

  • お世話になります。Azure初心者です。

    Windowsフォームベースでアプリケーションの開発を考えております。

    アプリケーションの開発環境はVisual Studio 2017です。

    DBはAzureのSQL Databaseを使用してアプリケーション(.exeファイル)を各ユーザーに配布。

    そこで質問です。

    使用する(DBにアクセスする)ユーザー全てのクライアント IP アドレスをファイアーウォール設定で登録しなければなりません。

    それを回避する方法はありますか?(アプリケーション内のコード組み込み等で)

    以上、よろしくお願いします。

    2018年1月13日 5:58

回答

  • サーバー レベルのファイヤーウォール規則は REST API を使って作成可能なので、クライアント アプリケーションから操作することは不可能ではないでしょう。

    ただ、クライアント アプリケーションから Azure SQL DB を利用するのであれば、アプリケーションから直接 DB を操作するのではなく、Azure 側に API Apps などでエンドポイントを作っておいて、そこ経由で利用するという方法が考えられますが、クライアントアプリから直接 DB を操作しなければならない積極的な理由があるのでしょうか?


    hebikuzure


    2018年1月13日 7:53
  • こんにちは。

    SQL Database の Firewall設定はレンジの指定なので
    試したことないですが、極端な話 0.0.0.0 ~ 255.255.255.255 で全て通すことできないんですかね。

    でもHebikuzureさんが仰っているとおり、SQLデータベース全てを操作させるのは危険なので、
    公開する操作を限定したWebAPIサーバーを中間に用意して、HTTPレイヤーで操作させたほうが良いと思いますし、一般的だと思います。

    • 回答としてマーク TsutomuS 2018年1月17日 13:12
    2018年1月13日 14:21
    モデレータ
  • 余計なお世話かもしれませんが・・・

    > WebAPIサーバーとHTTPレイヤーについてはこれから勉強したいと思います。

    最初から ASP.NET Web Forms などの Web アプリを開発してはいかがですか?(クライアント側はブラウザになります)

    Visual Studio のデザイナを利用すれば、基本的なところは自力ではコードを一行も書かずに Web アプリを作れます。

    「現行のプログラム」というのは DataGridView を利用した Windows Forms アプリではないかと想像していますが、どうしてもクライアント側はその形の Windows Forms アプリということであっても、「Windows アプリ ⇔ サーバー ⇔ SQL Server」という形にすることは可能です。

    Web サービス経由で非接続型データアクセス
    http://surferonwww.info/BlogEngine/post/2014/08/23/data-access-using-strongly-typed-dataset-and-web-service.aspx

    • 回答としてマーク TsutomuS 2018年1月17日 13:11
    2018年1月17日 1:52
  • 先に示した

    に REST API のリファレンスとしてリンクされている

    などを見ていただければ、どのようなリクエストを投げればよいのか分かります。リクエストのサンプルも掲載されています。


    hebikuzure

    • 回答としてマーク TsutomuS 2018年1月17日 13:11
    2018年1月17日 7:32
  • TsutomuS さん、こんにちは。フォーラムのご利用ありがとうございます。 

    フォーラム オペレーターからのお願いをさせてください。 

      

    本フォーラムは皆様の善意によって運営されております。  

    情報をもらうだけではなく、同じ問題でお困りの方のためにも、  

    参考になった投稿には、[回答としてマーク] の設定にご協力ください。 

    どうぞよろしくお願いいたします。


    参考になった投稿には回答済みマークの設定にご協力ください
    MSDN/TechNet Community Support 立花楓

    • 回答としてマーク TsutomuS 2018年1月17日 13:12
    2018年1月17日 7:41
    モデレータ

すべての返信

  • サーバー レベルのファイヤーウォール規則は REST API を使って作成可能なので、クライアント アプリケーションから操作することは不可能ではないでしょう。

    ただ、クライアント アプリケーションから Azure SQL DB を利用するのであれば、アプリケーションから直接 DB を操作するのではなく、Azure 側に API Apps などでエンドポイントを作っておいて、そこ経由で利用するという方法が考えられますが、クライアントアプリから直接 DB を操作しなければならない積極的な理由があるのでしょうか?


    hebikuzure


    2018年1月13日 7:53
  • こんにちは。

    SQL Database の Firewall設定はレンジの指定なので
    試したことないですが、極端な話 0.0.0.0 ~ 255.255.255.255 で全て通すことできないんですかね。

    でもHebikuzureさんが仰っているとおり、SQLデータベース全てを操作させるのは危険なので、
    公開する操作を限定したWebAPIサーバーを中間に用意して、HTTPレイヤーで操作させたほうが良いと思いますし、一般的だと思います。

    • 回答としてマーク TsutomuS 2018年1月17日 13:12
    2018年1月13日 14:21
    モデレータ
  • hebikuzureさん、ありがとうございます。

    REST APIやAPI Appsについては全く無知ですのでそこからそこから勉強しようと思います。

    何かヒントになるものがあればよろしくお願いします。(本やリンク先など…)

    ※クライアントアプリから直接 DB を操作したい理由については、現行のプログラムをそのままコネクション部分だけを

    書き換えれば再利用できると思ったからですm(_ _)m。

    2018年1月16日 22:49
  • Tak1waさん、ありがとうございます。とりあえず勉強中は0.0.0.0 ~ 255.255.255.255 で全て通すことにします。

    ※アクセスできる事が確認できました

    WebAPIサーバーとHTTPレイヤーについてはこれから勉強したいと思います。

    2018年1月16日 22:52
  • 余計なお世話かもしれませんが・・・

    > WebAPIサーバーとHTTPレイヤーについてはこれから勉強したいと思います。

    最初から ASP.NET Web Forms などの Web アプリを開発してはいかがですか?(クライアント側はブラウザになります)

    Visual Studio のデザイナを利用すれば、基本的なところは自力ではコードを一行も書かずに Web アプリを作れます。

    「現行のプログラム」というのは DataGridView を利用した Windows Forms アプリではないかと想像していますが、どうしてもクライアント側はその形の Windows Forms アプリということであっても、「Windows アプリ ⇔ サーバー ⇔ SQL Server」という形にすることは可能です。

    Web サービス経由で非接続型データアクセス
    http://surferonwww.info/BlogEngine/post/2014/08/23/data-access-using-strongly-typed-dataset-and-web-service.aspx

    • 回答としてマーク TsutomuS 2018年1月17日 13:11
    2018年1月17日 1:52
  • 先に示した

    に REST API のリファレンスとしてリンクされている

    などを見ていただければ、どのようなリクエストを投げればよいのか分かります。リクエストのサンプルも掲載されています。


    hebikuzure

    • 回答としてマーク TsutomuS 2018年1月17日 13:11
    2018年1月17日 7:32
  • TsutomuS さん、こんにちは。フォーラムのご利用ありがとうございます。 

    フォーラム オペレーターからのお願いをさせてください。 

      

    本フォーラムは皆様の善意によって運営されております。  

    情報をもらうだけではなく、同じ問題でお困りの方のためにも、  

    参考になった投稿には、[回答としてマーク] の設定にご協力ください。 

    どうぞよろしくお願いいたします。


    参考になった投稿には回答済みマークの設定にご協力ください
    MSDN/TechNet Community Support 立花楓

    • 回答としてマーク TsutomuS 2018年1月17日 13:12
    2018年1月17日 7:41
    モデレータ
  • そういう設定にしていると、外部から攻撃を受ける可能性が高まります。

    たとえ、勉強中で見られたり、壊されたりして困るデータがなかったとしても、無駄なデータを大量登録して多額の課金を発生させる嫌がらせは成立しかねないので...。

    2018年1月18日 3:31
  • TsutomuS さん、こんにちは

    フォーラム オペレーターの立花楓です。

    [回答としてマーク] をご設定くださいましてありがとうございます。

    今後とも MSDN フォーラムをどうぞよろしくお願いいたします。


    参考になった投稿には回答済みマークの設定にご協力ください
    MSDN/TechNet Community Support 立花楓

    2018年1月18日 4:09
    モデレータ