0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【続編】Dataverse容量取得APIは誰が使える? システム管理者ロールで検証してみた

0
Last updated at Posted at 2026-07-18

先日、管理者用Power Platformアクションを使って、環境ごとのDataverseのDatavase / File / Log をJSONで取得できることを紹介しました

この時には、Power Platform 管理者ロールを使ってテナントに存在するすべての環境について値を取得できるのが素晴らしい! という感想を持ちました。

けれど、ふつうは Power Platform 環境は環境ごとにシステム管理者ロールを持つユーザーに管理を任せているので、自分の環境の状態を自分で取得してもらうのがよいよなぁと思い立ち。

この記事では、ユーザーのロールによって取得できる情報が変わるのかを検証してみたいと思います。

テナントロールと環境ロールについて、おさらい

このあたりはわかっているという方は読み飛ばしてください。➡こちらへどうぞ

Microsoft 365 管理センターでユーザーを検索すると「役割」という項目があります。ここに何らかのロールが記載されていた場合、これをテナントロールといいます。

image.png

そもそもこの管理センターを開けるかや、ユーザーを追加できるか、課金の管理ができるか、など様々なロール(役割)が用意されています。

テナントロールの頂点に立つのが「グローバル管理者」であり、極端な話テナントの削除までできるヤベぇロールです。当たり前ですが企業の中で数人のみ、普段は使わないアカウントとして管理されていることが多いでしょう。

名前が似ていますが「グローバル閲覧者」というのは、テナント内の多くの設定を確認することはできますが、変更はできないというロールです。管理者さんの普段使いのアカウントにはこのロールをつけていることが多いのではないでしょうか?

image.png

Power Platform 管理者(テナントロール)

上記のように Microsoft 365 管理センターで与えられるロールのうちの一つが Power Platform 管理者です。
このロールの人が以下のURLにアクセスすると、Power Platform 管理センターにアクセスすることができます。

admin.powerplatform.com

image.png

Power Platform とは、すでにこの記事を読んでいる方には説明不要かもしれませんが、Power Automate、Power Apps、Copilot Studio などを動かすためのノーコード・ローコード開発基盤です。それらが動く「環境」や、Copilot クレジットなどの課金に関して管理するのが上記の Power Platform 管理センターです。

ちなみに、 Dynamics 365 も Power Platform 基盤の環境の中で動作しています。むしろDynamicsのCRM製品のほうが先で、それをカスタマイズする仕組みが切り出されて、ノーコード・ローコード基盤として再定義されたという経緯があります。

したがって、Dynamicsの各アプリは実質的に Microsoftが全力で作ったPower Appsのモデル駆動型アプリと考えるとしっくりきます。

Power BIもPower Platformの一員ではあるのですが、管理する画面は Power BI 管理ポータルとして別に用意されています。

システム管理者ロール(環境ロール)

さて、前述のPower Platform 管理者はテナントロールなのですが、「システム管理者」というのは、特定の環境の管理者になります。したがって、Power Platform 管理センターで1つの環境を選んだあと、その中でユーザーに環境内でのロールを付与します。システム管理者はユーザーを環境に加えてロールを与えることができる、いわば環境内の親分という立場です。

image.png

こちらがシステム管理者が開いたPower Platform 管理センターの画面です。先ほどのPower Platform 管理者と比べて「テナント設定」などのメニューが省かれていることがわかります。

image.png

下の図に照らすと、システム管理者は正しくは「Dataverseセキュリティロール」の種類に分類されるようです。
image.png

これまた余談ですが、Power Platformの環境のなかには「チーム環境」という種類もあります。これはTeamsのチームに作られる環境で、Teams AppsのPower Appsアプリやワークフローアプリからチームを選択して初めて何か作成する際に、自動的に作成される簡易的な環境です。

Teamsではチームの「所有者」「メンバー」の2つにユーザーが分けて管理されますが、「所有者」がチーム環境では「システム管理者」ロールが与えられます。

何を言っているんだかわかりにくくてすみません。

システム管理者でDataverse容量を取得してみる

それでは、テナントロールを持たず、1つだけ環境のシステム管理者になっているAlex さんに、前回の記事で作成したクラウドフローを実行してもらいましょう。
image.png

ちなみに、Alexさんは以下の3つの環境でフローを作成できるようです。

image.png

AlexさんのユーザーでPower Automateを開き、「管理者向け Power Platform」コネクタの「環境一覧を管理者として作成する」アクションを選択します。
image.png

「プロパティを展開する」には、以下を入力します。

properties.capacity

JSONの必要な項目だけを取得できるように、「選択」アクションで整理しています。

開始
@{outputs('環境一覧を管理者として作成する')?['body/value']}
環境名
@item()?['properties']?['displayName']
容量
@item()?['properties']?['capacity']

接続参照はAlexさんになっていますので、彼が管理している環境のDataverse容量だけが取得されていれば想定どおりですが、どうなるでしょう?

image.png

想定通り! Alexさんがシステム管理者である「テスト用環境Changed」のみ取得できました。
既定環境にはすべてのユーザーが「Environment maker」ロールがあたえられていますが、既定環境の容量は取得されていません。アクションの名前が「管理者として~」となっていますので、その名の通り、実行ユーザーが管理者権限を持つ環境のみ取得できるようです。

[
  {
    "環境名": "テスト用環境Changed",
    "容量": [
      {
        "capacityType": "Database",
        "actualConsumption": 181.7891,
        "ratedConsumption": 0,
        "capacityUnit": "MB",
        "updatedOn": "2026-07-17T11:09:28Z"
      },
      {
        "capacityType": "File",
        "actualConsumption": 1993.123,
        "ratedConsumption": 0,
        "capacityUnit": "MB",
        "updatedOn": "2026-07-17T11:09:28Z"
      },
      {
        "capacityType": "Log",
        "actualConsumption": 0.4536343,
        "ratedConsumption": 0,
        "capacityUnit": "MB",
        "updatedOn": "2026-07-17T11:09:28Z"
      },
      {
        "capacityType": "FinOpsDatabase",
        "actualConsumption": 0,
        "ratedConsumption": 0,
        "capacityUnit": "MB",
        "updatedOn": "2026-07-17T11:09:28Z"
      },
      {
        "capacityType": "FinOpsFile",
        "actualConsumption": 0,
        "ratedConsumption": 0,
        "capacityUnit": "MB",
        "updatedOn": "2026-07-17T11:09:28Z"
      }
    ]
  }
]

チーム環境の場合

チーム環境を持つ Teams チームで、Alexさんを「所有者」に昇格させてから、再度フローを実行してみます。
image.png

チームの所有者は、チーム環境のシステム管理者なので、このチーム環境の容量も取得できるようになりました。
image.png

システムカスタマイザーの場合

環境のロールとしてよく使われる「System Customizer」についても調べてみます。Alexさんに別の環境(サンドボックス環境)のシステムカスタマイザーロールを与えてみます。
image.png

しばらく待ってフローを実行してみましたが、システムカスタマイザー ロールでは、取得できる環境は増えませんでした。やはりおそらくロールに「管理者」とはいっているかどうかがポイントのようです。

システム管理者 / システムカスタマイザー / 環境作成者 / 環境管理者 の違いについては、こちらの記事がわかりやすいのでお勧めです。 ↓こちら

その他の Administrator ロールの場合

そのほかにも環境のロールにはいくつか Administrator と名前の付いたロールが存在します。さきほど取れなかった環境に、ためしに Quality Administrator ロールを追加してみます。

image.png

ちょっと待ってからフローを実行してみているのですが、取れないなぁ。 おかしいなあ。

管理者向け Power Platformコネクター

今更ですが、公式のコネクターに関するリファレンスを見てみます。

「環境管理者は・・・」という表現になっていました。
image.png

まとめ

今回の検証の結果、「管理者向け Power Platform」コネクターで取得できる環境は、実行ユーザーが管理者権限を持つ環境に限定されることが分かりました。

特にシステム管理者ロールを持つユーザーであれば、自身が管理する環境の Dataverse 容量を Power Automate から簡単に取得できます。

環境ごとの運用を各担当者に任せている組織では、テナント管理者がすべての情報を収集するのではなく、各環境の管理者が自分の環境の状態を把握する仕組みとして活用できそうです。

管理者向け Power PlatformコネクターはDLPポリシーでブロックされていることがあるかと思いますので、セキュリティを意識したうえでシステム管理者が「業務」に切り替えておく必要があるので要注意です。

このコネクタは無印と v2という2種類があります。
無印のほうは公式の説明によると「BAP API」で提供されるとあります。この前段で投稿した記事では、当初サービスプリンシパルとBAP APIをHTTP要求でたたいてDataverseを取得する試みをして、それは成功したのですが。このコネクタ自体がBAP APIをラップしたものだと思えば取得できるのも納得です。

image.png

ちなみに、V2のほうでは今のところ同じようにプロパティ追加をしても容量を取得できませんでした。無印がいつまで使えるかが気になるところです。

こんな人が書いてます。

職場でPower Platformの管理者さんをしています。ブログではPower AutomateのTipsのようなものを書いています。QiitaではPower BIとクラウドフローのちょこ技を記事にしています。そちらも読んで「いいね」などしていただけるととっても喜びます。

Power Platform系のコミュニティに参加しています。関西でのリアルイベントにはなるべく参加するようにしているので、アイコンを見かけたらぜひ声をかけてください。

この記事を書いていた際のツイートです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?