技術情報ブログ
SharePoint
2025.02.19

Power Apps:外部DBと接続する方法まとめ

Power Apps:外部DBと接続する方法まとめ
小刀稱知哉

こんにちは。アーティサン株式会社の小刀稱(ことね)です。

Power Appsでアプリを作成する際、SharePointリストやDataverseを用いることが多いと思いますが、もちろんそれ以外の外部DB(例:SQL Server・MySQL・PostgreSQLなど)と連携することも可能です。

それぞれの連携方法に応じて、できること・できないことが異なりますので、今回はPower Appsが外部DBと接続する方法について調査した結果を紹介します。
※あくまで私が調査した結果を紹介していますが、他の方法などあるかもしれません。

もしほかの方法などあれば、連絡してもらえればと思います(笑)

 

連携方法一覧

今回紹介する連携方法の一覧を表にしました。

連携方法一覧

Power Appsと外部DBを連携する方法は、全部で5パターンあるかと思います。

 

前提:今回の構成

今回はローカルPC上にSQL Serverを構築しています。 また、SQL Server上のテーブルについて、Power Appsのキャンバスアプリ・モデル駆動型アプリと連携させています。

構成

作成したSQL Server上のテーブル情報は以下の通りです。

列名

内容

id

主キー

prefecture_name

県名

capital_city

県庁所在地名

SQL Serverのテーブル

※注意※

ローカルPC上のDBとPower Appsを連携する際には、オンプレミスデータゲートウェイが必要となります。

今回もオンプレミスデータゲートウェイを用いていますが、本ブログの主題とは無関係なため、 構築などの詳細については省略しております。
オンプレミスデータゲートウェイの詳細については、以下URLを参照してください。
オンプレミス データ ゲートウェイとは

以降では、それぞれの連携方法について紹介します。

 

直接接続

直接接続_構成

最初に、直接接続する方法です。

こちらはPower Apps キャンバスアプリでのみ対応可能な方法です。

SharePointやDataverseと接続する手順と同様に、キャンバスアプリのデータデータの追加から外部DBと連携している接続情報を追加します。

直接接続

こちらの方法で接続する場合、アプリを使用するユーザー数分の有償ライセンスが必要となります。

※注意※

アプリを開発するユーザーの有償ライセンスが必要と思っている方がたまにいらっしゃいますが、 開発するユーザーではなく、アプリを利用するユーザーの有償ライセンスが必要となります。

またこちらの連携方法では、アプリと外部DBが相互同期されます。
相互同期とは、以下の挙動を示します。

  • 外部DB側のCRUD操作が、Power Apps側にも反映される

  • Power Apps側のCRUD操作が、外部DBにも反映される

 

仮想テーブル

仮想テーブル_構成

続いては、Dataverseの仮想テーブルを用いて接続する方法です。

こちらは、Power Apps キャンバスアプリでも、モデル駆動型アプリでも対応可能な方法です。

Dataverseの仮想テーブルとは、テーブルのスキーマ情報のみがDataverseに保存されている状態のテーブルのことを指します。
※実際のレコードデータについては、外部DBに保存されたままとなります。

仮想テーブルの詳細については、以下URLを参照してください。
外部データ ソースからのデータを含む仮想テーブルの作成および編集

Dataverse内で仮想テーブルを作成し、アプリ側では作成した仮想テーブルを用います。

仮想テーブルの作成
モデル駆動型アプリ_仮想テーブル

こちらの方法で接続する場合は、アプリを使用するユーザー数分の有償ライセンスが必要となります。

また、アプリと外部DBが相互同期される構成となります。

 

データフロー

仮想テーブル_構成

続いては、データフローを用いて、外部DBDataverseの実テーブルを連携し、Power Appsと接続する方法です。

こちらの接続方法についても、Power Apps キャンバスアプリ・モデル駆動型アプリどちらでも対応可能な方法です。

Dataverse内に実テーブル(仮想テーブルとの違いをわかりやすくするため、「実テーブル」と表記します。)を作成し、 データフローを用いて、外部DBから定期的に実テーブルへ値を反映させます。

データフロー

データフローの詳細については、以下URLをご参照ください。
Microsoft Power Platform でのデータフローの作成と使用

こちらの方法で接続する場合は、アプリを使用するユーザー数分の有償ライセンスが必要となります。

また同期方法ついては、外部DBからDataverseへデータが連携されるのみとなります。

よって、以下のような挙動となります。

  • 外部DB側のCRUD操作については、Dataverse側(=Power Apps側)へ反映される
    ※データフローを設定する際、「クエリ出力に存在しない行を削除します」をオンにすることで、外部DBのDelete操作をDataverse側へ反映させることができます。

  • Power Apps側のCRUD操作は、外部DBに反映されない

 

仮想テーブルと実テーブルを用いる方法の違い

前項で説明して仮想テーブルを用いる方法と、データフローを用いて実テーブルを用いる方法の違いについては、 以下のような点があるかと思います。

連携方法

構成

メリット

デメリット

仮想テーブルを用いる方法

レコードデータは外部DBのみに保存される
※Dataverse内にはスキーマ情報のみ保存

・Dataverse内の容量を削減できる
・データの相互同期が可能
・外部DBのデータをリアムタイムに取得可能

・データのCRUDが低速
・一部機能の制限があり

実テーブルを用いる方法

レコードデータはDataverse内にも保存される

・データのCRUDが高速
・Dataverseの機能を全て利用可能

・Dataverse内の容量が増える
・外部DBからのCRUD操作のみ反映
・外部DBのデータは定期的な更新となる

仮想テーブルを使用する際の制限事項については、以下URLをご参照ください。
仮想テーブルを使用する際の考慮事項

詳細については上記URLを見ていただければと思いますが、私が着目した点は以下です。

仮想テーブルは、、、
  • 監査をサポートしていない

  • 計算列をサポートしていない

  • テーブルの所有者は「組織」のみ

  • フィールドレベルセキュリティをサポートしていない

 

Power Automate(Dataverse)

Power Automateを用いて、Dataverseの実テーブルを作成_構成

続いては、Power Automateを用いて、外部DBDataverseの実テーブルを連携し、Power Appsと接続する方法です。

前述した接続方法の場合は、データフローを用いてDataverseの実テーブルと連携しましたが、こちらの方法ではデータフローの代わりにPower Automateを用いて連携しています。

使用できるアプリの種類や必要なライセンス数、同期方法については、データフローを用いて、Dataverseの実テーブルを作成し、接続すると同様です。

本手順については、一応紹介はしてはいますが、データフローの機能を越えるような内容は無いのではないかと思っています。

ただし、Power Automateで連携部分を自作するため、手間はかかりますが、その分作り込むことが可能という点は特長として挙げられます。

よって、データフローでは対応できなかったような機能がある場合は、Power Automateを作り込むことにより対応可能となります。
(本手順の活用内容などある場合は、ご教示ください!)

 

Power Automate(SharePoint)

Power Automateを用いて、Dataverseの実テーブルを作成_構成

最後に、Power Automateを用いて、外部DBSharePointリストを連携し、Power Appsと接続する方法です。
前述した方法では外部DBとDataverseを連携させましたが、こちらの方法では、SharePointリストと連携させます。

本接続方法の最大のメリットとしては、有償ライセンス数が1つで対応可能という点だと思います。

今まで紹介していた方法の場合は、アプリを使用する全ユーザー数分の有償ライセンスが必要となりますが、 こちらの方法ではPower Automateの所有者のみ有償ライセンスを持っていれば対応可能です。

※注意※

SharePointリストを用いる場合は、委任に関する問題やデータ量・セキュリティに関する制約などがあります。

簡易的なアプリを作成する場合には、SharePointリストで問題ありませんが、複雑なアプリを作成する場合には、Dataverseを用いることを推奨いたします。(お金はかかってしまいますが、、、(笑))

 

まとめ

前述した各接続方法について、以下にまとめてみました。

 

有償ライセンス数

使用できるアプリ

相互同期

更新頻度

直接接続

使用ユーザー数分

キャンバス

リアルタイム

仮想テーブル

使用ユーザー数分

キャンバス・モデル駆動型

リアルタイム

データフロー

使用ユーザー数分

キャンバス・モデル駆動型


(外部DB→Dataverseは可能)

定期更新
(48回/日)

Power Automate
(Dataverse)

使用ユーザー数分

キャンバス・モデル駆動型


(作り込みで可能)

定期更新
(60秒に1回トリガー可能)

Power Automate
(SharePointリスト)

1

キャンバス・モデル駆動型


(作り込みで可能)

定期更新
(60秒に1回トリガー可能)

 

おわり

今回は、外部DB(例:SQL Server・MySQL・PostgreSQLなど)を用いてPower Appsアプリを作成する際の、 連携方法について調査した結果を紹介しました。
調査してみると、色々な連携方法があり、それぞれに特徴があることがわかりました。

外部DBと連携することを考える際に、ご一読いただけますと幸いです。

最後まで読んでいただき、ありがとうございました!

この記事を書いた人
小刀稱知哉

小刀稱 知哉ことね ともや

SharePoint Power Platform全般 Copilot Studio 技術アドバイス・教育支援

Power PlatformやSharePointを中心に設計・開発・アドバイス・教育まで幅広く担当しています。内製化をご希望の場合はお気軽にお問い合わせください!

2025 Microsoft MVP(Power Apps・Power Automate)
PL-200 PL-300 PL-400 PL-600 MS-700 AZ-104 AZ-305 SC-200 SC-100

Microsoftクラウド関連

シェアする
記事カテゴリ
最新記事
2026.04.29

Dataverse応用(1)!列レベルのセキュリティを設定してみよう!-特定の列だけマスクする

2026.04.22

ソリューション内で異動・退職者のPower Apps/Power Automateなどを引き継ぐには?所有者変更の手順と注意点を解説

2026.04.15

SharePoint:『リンクのコピー』は危険?権限トラブルを防ぐ推奨運用を解説

2026.04.08

技術ブログ100本書いてみたら、想像以上に得るものがあった話

2026.04.01

社内に聞く人がいない「孤独なDX」を解決!アーティサンの内製化支援サービス

SharePointEF CoreMarker Clusterer中級者DXインポート自動化したクラウドフロー構築デザインフロー実行ドキュメント ライブラリ市民開発登録者X-SPNFCタグエンゲージメントMultilingualデータ移行実運用官公庁システム画像挿入プロジェクト作成ユニークキーMVP共有設定ソリューションエクスポート整数ExcelマイグレーションRANK()関数キャンバスアプリノウハウカスタマイズ委任自動化したクラウド フロー運用開発環境filter query管理システム列StyleDLPポリシー地方自治体MLJSON書式保守性デジタル化推進複数レコードPCFギャラリー一意制約技術支援情報漏洩対策権限管理データ型Power AutomateFramework CoreDynamics 365 SalesDatePicker情報技術componentVBAフローの種類選択肢列環境sortガバナンス登録日StudioTestCopilot Studiot共有リンクテンプレート化DX推進テーマカラーPDF変換業務システムURLパラメータ技術ブログ 書き方コマンドバーカスタマイズ組織変更C#Attribute directivesMicrosoft TranslatorDropdownメッセージIDダイアログエラーインスタント クラウド フロー参照列本番環境ソートerror notification更新者AICanvas自治体DXレポート化サイト複製作り方ダークモード資料自動作成キャンバスアプリ 違いメンテナンスモードエンジニア ブログ メリットSharePoint管理センター注文管理アプリattributeO/Rマッパーマーカークラスタリングライブラリviewメールコンポーネントエクセルスケジュール済みクラウド フローChatGPTライセンスmultiple itemエラー通知更新日生成系AITest Studio生成AI自治体APIPnP PowerShellページ承認Formulasプロパティフロー設計Power Apps 導入並べ替えブログ 継続 コツDLPサブグリッドvalidationazure sql databasetailwindcssビューfirst()関数dialogerrorレスポンシブ レイアウトOpenAI環境構築手順複数項目削除変更Copilotテスト事例HTTP リクエストカスタムスクリプトドキュメント管理カラーセットテンプレート活用Power Apps 比較ヘッダー非表示技術力向上権限管理ベストプラクティスDataverse テーブルローコードCase式マルチテナントアクセス制限nestTips復元responsive layoutオープンAIpipelineシェアポイントフォルダ外部DBlicenseテストスタジオ活用ワーケーション業務効率化IT管理カラーユニバーサルデザイン自動化事例モデル駆動型 とはリスト フィルタ文章力 鍛え方野良権限部署AngularHTTP Requestドロップダウンメニューノーコード入れ子新機能restoreデータ行の制限チャットGPTCI/CD便利機能ゴミ箱連携添付ファイルコントロール使い方サイトブランド化名古屋ファイル保存申請システムアプリデザインNode.jsシステム構築便利アウトプット 重要性Teams ファイル共有リレーションシップAccessCSSBreakpointObserver承認動的リスト変数Power BI引き継ぎgalleryパイプラインカレンダー完全削除接続ファイルサイズ基本知識フォントカスタマイズ体験記エンティティワークフロー自動化UI/UXVisual Studio CodeAlternate Key野良アプリ対策IT エンジニア 転職OneDrive1対多InfoPathxUnitメディアクエリリマインドcollection検索個人列退職ギャラリーDevOpsCalendarモデル駆動型データフローフルリモートワークPowerAutomateブランドセンター感想フォルダ構成設定アクセシビリティPCF代替キーCoEブログ モチベーションつながり参照多対多MatTable.Net Core 3.1スマホSetコレクションMicrosoft 365グループユーザー列所有者を変更スクロールMicrosoft 365Teamsセキュリティロールrecycle binアーティサンX-SP Designテーマ作成チームサイトMicrosoft Learn Docsアジャイル開発Wordテンプレート環境構築重複チェック内製化コンサルティングネタ切れ 対策システムカスタマイザーER図Angular MaterialVSCodePCForAll複数の添付ファイルセキュリティグループSharePoint Online異動コンテナ簡易在庫管理ローコード開発ビジネスルールアクセス許可Artisanスライドショーデザイン拡張コミュニケーションサイトカスタムコネクタ準委任契約業務自動化カスタムコンポーネントGUIDITサポートAI ブログ 活用Connection Reference入門編データ構造.Net Core Test ExplorerレスポンシブUpdateContext承認フロー送信元リストLoopショートカットキー時間外非エンジニアDataverseSharePoint Framework転職Slide showMicrosoft365サイトの種類OpenAPI請負契約効率化Power Platform CLI業務キー月額定額PV数 増やす共同所有者1行テキストモデル駆動型アプリSortByColumns関数Dataverse for TeamsDynamics 365ロードマップフォームメールの送信非表示Microsoftshortcut key通知体験談JavaScriptSPFx主キー比較移行要件定義MCPサーバー総合評価型入札資料作成開発手順複合キー委任問題権限トラブル主要な所有者複数行テキストPower AppsTypeScriptitem関数入門技術form差出人アプリdesignconcat関数ファイル勉強表示サンプルCopilot Studio社内ポータル多言語化サイト構成FAQエージェントデジタルトランスフォーメーション初心者向け拡張機能データ整合性Delegationアクセス権限環境変数選択肢Power PlatformHTMLGoogle Maps初心者Itエクスポートインスタントクラウドフロー[市民開発者JSON文字制限フィルター クエリ内製化切替samplePowerAppsグループウェアMUI権限設計AIチャットボットプロポーザル方式ハウツービルドデータベース設計サブスクリプション型支援ファイルパスクラシック画面日付
PageTop
ページトップに戻る