次の方法で共有


サービス プリンシパルによる自動化

サービス プリンシパルは、無人リソースとサービス レベルの操作を実行するためにテナント内に作成する Microsoft Entra アプリケーション リソースです。 これらは、アプリケーション ID とパスワードまたは証明書を持つ一意の種類の ユーザー ID です。 サービス プリンシパルには、割り当てられているロールとアクセス許可によって定義されたタスクを実行するために必要なアクセス許可のみが含まれます。

Analysis Services では、サービス プリンシパルは Azure Automation、PowerShell 無人モード、カスタム クライアント アプリケーション、Web アプリと共に使用され、一般的なタスクを自動化します。 たとえば、サーバーのプロビジョニング、モデルのデプロイ、データの更新、スケールアップ/ダウン、一時停止/再開はすべて、サービス プリンシパルを使用して自動化できます。 アクセス許可は、通常の Microsoft Entra UPN アカウントと同様に、ロール メンバーシップを通じてサービス プリンシパルに割り当てられます。

Analysis Services では、サービス プリンシパルを使用してマネージド ID によって実行される操作はサポートされていません。 詳細については、Microsoft Entra 認証をサポートする Azure リソースと Azure サービスのマネージド ID に関するページを参照してください。

サービス プリンシパルを作成する

サービス プリンシパルは、Azure portal または PowerShell を使用して作成できます。 詳細については、以下をご覧ください。

サービス プリンシパルの作成 - Azure portal
サービス プリンシパルの作成 - PowerShell

Azure Automation に資格情報と証明書資産を格納する

サービス プリンシパルの資格情報と証明書は、Runbook 操作のために Azure Automation に安全に格納できます。 詳細については、以下をご覧ください。

Azure Automation の資格情報資産
Azure Automation の証明書資産

サーバー管理者ロールにサービス プリンシパルを追加する

Analysis Services サーバー管理操作にサービス プリンシパルを使用するには、サーバー管理者ロールにサービス プリンシパルを追加する必要があります。 サービス プリンシパルは、サーバー管理者ロールに "直接" 追加する必要があります。 サービス プリンシパルをセキュリティ グループに追加してから、そのセキュリティ グループをサーバー管理者ロールに追加することはサポートされていません。 詳細については、「 サーバー管理者ロールにサービス プリンシパルを追加する」を参照してください。

接続文字列のサービス プリンシパル

サービス プリンシパルの appID とパスワードまたは証明書は、UPN とほぼ同じ接続文字列で使用できます。

PowerShell

Azure Az PowerShell モジュールを使用して Azure と対話することをお勧めします。 開始するには、 Azure PowerShell のインストールに関するページを参照してください。 Az PowerShell モジュールに移行する方法については、「 Azure PowerShell を AzureRM から Az に移行する」を参照してください。

Az.AnalysisServices モジュールの使用

Az.AnalysisServices モジュールでリソース管理操作にサービス プリンシパルを使用する場合は、Connect-AzAccountコマンドレットを使用します。

次の例では、appID とパスワードを使用して、読み取り専用レプリカへの同期とスケールアップ/スケールアウトのためのコントロール プレーン操作を実行します。

Param (
        [Parameter(Mandatory=$true)] [String] $AppId,
        [Parameter(Mandatory=$true)] [String] $PlainPWord,
        [Parameter(Mandatory=$true)] [String] $TenantId
       )
$PWord = ConvertTo-SecureString -String $PlainPWord -AsPlainText -Force
$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $AppId, $PWord

# Connect using Az module
Connect-AzAccount -Credential $Credential -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx"

# Synchronize a database for query scale out
Sync-AzAnalysisServicesInstance -Instance "asazure://westus.asazure.windows.net/testsvr" -Database "testdb"

# Scale up the server to an S1, set 2 read-only replicas, and remove the primary from the query pool. The new replicas will hydrate from the synchronized data.
Set-AzAnalysisServicesServer -Name "testsvr" -ResourceGroupName "testRG" -Sku "S1" -ReadonlyReplicaCount 2 -DefaultConnectionMode Readonly

SQLServer モジュールの使用

次の例では、appID とパスワードを使用して、モデル データベースの更新操作を実行します。

Param (
        [Parameter(Mandatory=$true)] [String] $AppId,
        [Parameter(Mandatory=$true)] [String] $PlainPWord,
        [Parameter(Mandatory=$true)] [String] $TenantId
       )
$PWord = ConvertTo-SecureString -String $PlainPWord -AsPlainText -Force

$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $AppId, $PWord

Invoke-ProcessTable -Server "asazure://westcentralus.asazure.windows.net/myserver" -TableName "MyTable" -Database "MyDb" -RefreshType "Full" -ServicePrincipal -ApplicationId $AppId -TenantId $TenantId -Credential $Credential

AMO と ADOMD

クライアント アプリケーションと Web アプリを使用して接続する場合、AMO および ADOMD クライアント ライブラリ バージョン 15.0.2 以降のインストール可能なパッケージは、接続文字列におけるサービス プリンシパルを次の構文でサポートします: app:AppID とパスワード、または cert:thumbprint

次の例では、 appIDpassword を使用して、モデル データベースの更新操作を実行します。

string appId = "xxx";
string authKey = "yyy";
string connString = $"Provider=MSOLAP;Data Source=asazure://westus.asazure.windows.net/<servername>;User ID=app:{appId};Password={authKey};";
Server server = new Server();
server.Connect(connString);
Database db = server.Databases.FindByName("adventureworks");
Table tbl = db.Model.Tables.Find("DimDate");
tbl.RequestRefresh(RefreshType.Full);
db.Model.SaveChanges();

次のステップ

Azure PowerShell を使用してサインインする
Logic Apps を使用した更新
Azure Automation で更新する
サーバー管理者ロールにサービス プリンシパルを追加する
サービス プリンシパルを使用して Power BI Premium ワークスペースとデータセット タスクを自動化する