トレーニング
認定資格
Microsoft Certified: Azure Database Administrator Associate - Certifications
Microsoft PaaS リレーショナル データベース オファリングを使用して、クラウド、オンプレミス、ハイブリッド リレーショナル データベースの SQL Server データベース インフラストラクチャを管理します。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
この記事では、Azure Automation のシステム割り当てマネージド ID を使用して、Azure SQL データベースのデータベースに接続して管理する手順について説明します。 Azure Automation では、Azure Az PowerShell で利用できる最新の Az PowerShell コマンドレットを使うことで、Azure SQL Database 内のデータベースを管理できます。
Azure Automation には、これらの Azure Az PowerShell コマンドレットがあらかじめ用意されているため、サービス内ですべての SQL データベース管理タスクを実行できます。 Azure Automation 内のこれらのコマンドレットと別の Azure サービスのコマンドレットを組み合わせて、Azure サービスとサード パーティ システム全体の複雑なタスクを自動化することもできます。
Azure Automation では、PowerShell を使用して SQL Server に対して T-SQL (Transact SQL) コマンドを発行することもできます。
データベースに対してコマンドを実行するには、次の操作を行う必要があります。
Automation システム マネージド ID から Azure SQL データベースへのアクセスを許可するには、これらの手順に従います。
Automation システム マネージド ID が [オフ] の場合は、次の操作を行います。
Azure portal にサインインします。
Automation アカウントに移動します。
[Automation アカウント] ページの [アカウント設定] で、[ID] を選択します。
[システム割り当て済み] タブで、[状態] として [オン] を選択します。
システム マネージド ID を [オン] にした後、これらの手順を使用して、アカウントに必要なアクセス権を指定する必要があります。
これらの手順を使用して、Active Directory 認証用に SQL Server を構成します。
これらの手順を使用して、SQL 側で認証を追加します。
# AutomationAccount - replace with your Automation account's name
# ObjectID - replace with object (principal) ID for your system managed identity principal from step 1.
CREATE USER "AutomationAccount" FROM EXTERNAL PROVIDER WITH OBJECT_ID = `ObjectID`
EXEC sp_addrolemember `db_owner`, "AutomationAccount"
if ($($env:computerName) -eq "Client") {"Runbook running on Azure Client sandbox"} else {"Runbook running on " + $env:computerName}
Disable-AzContextAutosave -Scope Process
Connect-AzAccount -Identity
$Token = (Get-AZAccessToken -ResourceUrl https://database.windows.net).Token
Invoke-Sqlcmd -ServerInstance azuresqlserverxyz.database.windows.net -Database MyDBxyz -AccessToken $token -query 'select * from TableXYZ'
SELECT roles.[name] as role_name, members.name as [user_name]
from sys.database_role_members
Join sys.database_principals roles on database_role_members.role_principal_id= roles.principal_id
join sys.database_principals members on database_role_members.member_principal_id=members.principal_id
Order By
roles.[name], members.[name]
注意
SQL Server がファイアウォールの内側で実行されている場合は、独自のネットワーク内のマシンで Azure Automation Runbook を実行する必要があります。 IP アドレスまたはネットワークがファイアウォールによってブロックされないように、このマシンを必ず Hybrid Runbook Worker として構成してください。 マシンをハイブリッド Worker として構成する方法の詳細については、ハイブリッド worker の作成に関するページを参照してください。
ハイブリッド worker を使用する場合、Runbook で使われるモジュールを、管理者特権の PowerShell プロンプトからローカルにインストールする必要があります。 たとえば、- Install-module Az.Accounts and Install-module SqlServer
のようにします。 必要なモジュール名を見つけるには、各コマンドレットでコマンドを実行し、ソースを確認します。 たとえば、Az.Account モジュールの一部である、コマンドレット Connect-AzAccounts
のモジュール名を確認するには、コマンド get-command Connect-AzAccount
を実行します。
注意
ハイブリッド worker で実行することを目的とした Runbook の先頭に、if ($($env:computerName) -eq "CLIENT") {"Runbook running on Azure CLIENT"} else {"Runbook running on " + $env:computerName}
というコードを追加することをお勧めします。 このコードを使用すると、実行中のノードを確認でき、ハイブリッド worker ではなく Azure クラウドで誤って実行した場合、Runbook が機能しなかった理由を特定するのに役立ちます。
トレーニング
認定資格
Microsoft Certified: Azure Database Administrator Associate - Certifications
Microsoft PaaS リレーショナル データベース オファリングを使用して、クラウド、オンプレミス、ハイブリッド リレーショナル データベースの SQL Server データベース インフラストラクチャを管理します。