質問: new NpgsqlConnection(connectionString)) { ... } ``` ### 補足情報(FW/ツールのバージョンなど) Visual Studio 2019 Xamarin.Forms 4.2.0.709249 Azureはまったく触ったことのない初心者です。 なにか情報をお持ちの方は回答よろしくお願いします。
回答: > > 1. ローカルPCに構築したDBではなく、クラウドのAzureに関しても上記のように直接DBにアクセスするのは悪手となりますか? > > > ローカルであれクラウドであれ、アプリがDBに直接アクセスできる構成にするのは悪手とされがちです。悪意のある第三者が、DBに直接アクセスして好き勝手にいじれる可能性が出てくるからです。特にクラウドにDBがあった場合、アプリのDB接続情報を読み取った第三者が `truncate table hogehoge` などというSQLを投げてくるのを止める手立てがありません。 一方、[アプリ]→[Web API]→[DB] のような一般的な構成(DBはWeb APIからしかアクセスできない)であれば、悪意のある第三者といえどもWeb APIで許可された操作しかできません。 > > 2. 質問1の内容が悪手であるとすれば、AzureのDBアクセス系SDKがNuGet等で用意されていたりしますか? > > > これは分かりませんが、 > > それとも、別途サーバアプリ等を作成して配置する必要がありますか? > > > アプリがDBに直接アクセスするのと比べれば、別途サーバアプリ等を作成するほうが安全です。一般的には。 ただし、サーバアプリ等を作成するコストとアプリがDBに直接アクセスできる環境の危険性を天秤にかけたうえであえて直接アクセスを選択する、というシナリオはありえるでしょう。 (アプリは一般公開しないのでDB接続情報が漏洩する危険は極端に低い、など?) あまりお勧めはしませんが......。