Data Hub には開発 (dev)、ステージ (stg)、本番 (prod) と環境が 3⾯あり、SQL DB も UMID も環境ごとに存在する →環境ごとに UMID が異なるので、共通のマイグレーションSQLスクリプトは使えない 利⽤ユーザーが増えるたびに DB をプロビジョニングするフローになっている →プロビジョニングは⼈⼿ではなく、⾃動化しておきたい ⾃動化するので CREATE USER ** FROM EXTERNAL PROVIDER を実⾏する際に SQL Server に紐 づく UMID に Graph API の権限が必要だけど、その権限を付与できるのはセキュリティ管理部⾨の み →簡単な検証をするにも他部署とのやり取りが必要だし、セキュリティ管理部⾨の⽅は往々にして 忙しい
アプリ⽤ID DB のプロビジョニング 及び CREATE USER `アプリ用ID` FROM EXTERNAL PROVIDER の実行 プロビジョニング⽤ID 管理者グループ Microsoft Entra admin UMID プロビジョニング⽤ID Graph API を使うことで UMID に関して問い合わせを⾏う DBをプロビジョニング する処理 UMID アプリ⽤ID 各アプリケーション DB の読み書き SQL Server SQL DB
補⾜ SQL Server ⽤ID 各環境における SQL Server の Primary ID Azure SQL Database CREATE USER ** FROM EXTERNAL PROVIDERを実⾏時に Graph API 経由で Entra ID に問い合わせるので、 Graph API に対する権限 が必要 プロビジョニング⽤ID DBプロビジョニング時に CREATE USER ** FROM EXTERNAL PROVIDER を実⾏するための ID DBをプロビジョニング する処理 管理者グループに⼊れ る アプリ⽤ID プログラムからDB読み書き ⽤ App Service / Function など - db_datareader - db_datawriter ※SQL DB としての権限 DB User として作成する
ID にしてやり、Authentication プロパティを変更し てあげるだけで UMID 認証になる 接続⽂字列 // Before Server=tcp:{serverName},1433;Initial Catalog={dbName}; User ID={user};Password={password}; Encrypt=True;Trust Server Certificate=False;Connect Timeout=xx; Before // After Server=tcp:{serverName},1433;Initial Catalog={dbName}; User ID={アプリ用IDのClientID}; Encrypt=True;Trust Server Certificate=False;Connect Timeout=xx; Authentication=ActiveDirectoryDefault After