私はこのトピックに関する多くの質問がありますが、読書やグーグルーグの4日間の後、私は固執しています。ベストプラクティス:リモートSQLデータベースにWPFを接続してください
マイ状況:
私はC#でWPFアプリケーションを開発しました。 このアプリケーションは、ユーザーアカウントデータなどを格納するため、データベースに接続する必要があります。今までは、Visual Studio環境のローカルデータベースで、データソースを設定し、マッピングとセッションにFluent NHibernateを使用して作業しました。 これで、ClickOnce経由でアプリケーションをユーザーに配布したいので、ローカルデータベースからオンラインデータベースに切り替える必要があります。
Webサーバー(Debian 8 Jessie 64Bit、カーネルバージョン3.16.0-4-amd64(SMP))、SSHアクセス、およびサーバーの管理用のi-MSCP 1.3.16プラットフォームへのアクセス権があります。私はサーバーのドメインとSQLユーザーのいずれかにデータベースを作成し、phpmyadminにアクセスできます。 私は、SANDHYALAL KUMARの例hereに記載されているように、任意のIPに対してリモートアクセスを許可する手順に従ってきました。 最初の質問:リモートアクセスが現在許可されているかどうかを確認する方法を教えてください。 mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
を実行すると、私は0 rows affected.
をパテコンソールで入手するのですか?
第2の重要な質問:今すぐ自分のサーバーに自分のWPFを接続できますか。 私は私が直接このように、あるため、パスワードのセキュリティおよびデータベースのセキュリティのため、サーバーに接続してはならないこと、読んだ:私がそうであるようにしかし、私は、上記の溶液は、私のために働くだろうとは思いません
オンラインのMSSQL Serverはありませんか?または、既存のサーバーを構成する必要がありますか?
私の問題を解決する特定のレイヤーまたはAPIがありますか? WCFまたはRESTかADO.Netは私の解決策ですか?私は本当にこれらの異なる名前にこだわられているので、私は2つの質問に関するいくつかの説明とアドバイスを本当に感謝しています。
...あなたの理解を助けます...あなたがオンラインデータベースに接続するWPFデスクトップアプリケーション...を配布したい希望に...と同時に、接続文字列を保護? –
はい、これは珍しいことですか?私はすべてのアプリケーションが何らかの形でデータベースに接続されているのではないでしょうか?セキュリティに関して、私はWPFとデータベースの間の層が問題を解決するだろうと考えました。 –
実際、これがシナリオの場合、クライアントが接続するAPI(WebApiプロジェクトを使用するのが最も簡単です)を公開する必要があります。 APIはデータベースと安全に通信します。したがって:クライアント - > API - > DB –